@@ -102,13 +102,16 @@ private void AddFlatSubnodes(Node node, string names, string accessIds)
102102 if ( node . Childs . Count == 0 )
103103 {
104104 // Am Blatt des Baums angekommen
105- var info = new VarInfo
105+ if ( IsSoftdatatypeSupported ( node . Softdatatype ) )
106106 {
107- Name = names ,
108- AccessSequence = accessIds ,
109- Softdatatype = node . Softdatatype
110- } ;
111- m_varInfoList . Add ( info ) ;
107+ var info = new VarInfo
108+ {
109+ Name = names ,
110+ AccessSequence = accessIds ,
111+ Softdatatype = node . Softdatatype
112+ } ;
113+ m_varInfoList . Add ( info ) ;
114+ }
112115 }
113116 else
114117 {
@@ -327,6 +330,90 @@ private void AddSubNodes(ref Node node, PObject o)
327330 }
328331 }
329332
333+ private bool IsSoftdatatypeSupported ( uint softdatatype )
334+ {
335+ switch ( softdatatype )
336+ {
337+ case Softdatatype . S7COMMP_SOFTDATATYPE_BOOL :
338+ case Softdatatype . S7COMMP_SOFTDATATYPE_BYTE :
339+ case Softdatatype . S7COMMP_SOFTDATATYPE_CHAR :
340+ case Softdatatype . S7COMMP_SOFTDATATYPE_WORD :
341+ case Softdatatype . S7COMMP_SOFTDATATYPE_INT :
342+ case Softdatatype . S7COMMP_SOFTDATATYPE_DWORD :
343+ case Softdatatype . S7COMMP_SOFTDATATYPE_DINT :
344+ case Softdatatype . S7COMMP_SOFTDATATYPE_REAL :
345+ case Softdatatype . S7COMMP_SOFTDATATYPE_DATE :
346+ case Softdatatype . S7COMMP_SOFTDATATYPE_TIMEOFDAY :
347+ case Softdatatype . S7COMMP_SOFTDATATYPE_TIME :
348+ case Softdatatype . S7COMMP_SOFTDATATYPE_S5TIME :
349+ case Softdatatype . S7COMMP_SOFTDATATYPE_DATEANDTIME :
350+ case Softdatatype . S7COMMP_SOFTDATATYPE_STRING :
351+ case Softdatatype . S7COMMP_SOFTDATATYPE_POINTER :
352+ case Softdatatype . S7COMMP_SOFTDATATYPE_ANY :
353+ case Softdatatype . S7COMMP_SOFTDATATYPE_BLOCKFB :
354+ case Softdatatype . S7COMMP_SOFTDATATYPE_BLOCKFC :
355+ case Softdatatype . S7COMMP_SOFTDATATYPE_COUNTER :
356+ case Softdatatype . S7COMMP_SOFTDATATYPE_TIMER :
357+ case Softdatatype . S7COMMP_SOFTDATATYPE_BBOOL :
358+ case Softdatatype . S7COMMP_SOFTDATATYPE_LREAL :
359+ case Softdatatype . S7COMMP_SOFTDATATYPE_ULINT :
360+ case Softdatatype . S7COMMP_SOFTDATATYPE_LINT :
361+ case Softdatatype . S7COMMP_SOFTDATATYPE_LWORD :
362+ case Softdatatype . S7COMMP_SOFTDATATYPE_USINT :
363+ case Softdatatype . S7COMMP_SOFTDATATYPE_UINT :
364+ case Softdatatype . S7COMMP_SOFTDATATYPE_UDINT :
365+ case Softdatatype . S7COMMP_SOFTDATATYPE_SINT :
366+ case Softdatatype . S7COMMP_SOFTDATATYPE_WCHAR :
367+ case Softdatatype . S7COMMP_SOFTDATATYPE_WSTRING :
368+ case Softdatatype . S7COMMP_SOFTDATATYPE_LTIME :
369+ case Softdatatype . S7COMMP_SOFTDATATYPE_LTOD :
370+ case Softdatatype . S7COMMP_SOFTDATATYPE_LDT :
371+ case Softdatatype . S7COMMP_SOFTDATATYPE_DTL :
372+ case Softdatatype . S7COMMP_SOFTDATATYPE_REMOTE :
373+ case Softdatatype . S7COMMP_SOFTDATATYPE_AOMIDENT :
374+ case Softdatatype . S7COMMP_SOFTDATATYPE_EVENTANY :
375+ case Softdatatype . S7COMMP_SOFTDATATYPE_EVENTATT :
376+ case Softdatatype . S7COMMP_SOFTDATATYPE_FOLDER : // Should we support this internal datatype? Only used internally in SFBs
377+ case Softdatatype . S7COMMP_SOFTDATATYPE_AOMLINK :
378+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWANY :
379+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWIOSYSTEM :
380+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWDPMASTER :
381+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWDEVICE :
382+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWDPSLAVE :
383+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWIO :
384+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWMODULE :
385+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWSUBMODULE :
386+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWHSC :
387+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWPWM :
388+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWPTO :
389+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWINTERFACE :
390+ case Softdatatype . S7COMMP_SOFTDATATYPE_HWIEPORT :
391+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBANY :
392+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBDELAY :
393+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBTOD :
394+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBCYCLIC :
395+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBATT :
396+ case Softdatatype . S7COMMP_SOFTDATATYPE_CONNANY :
397+ case Softdatatype . S7COMMP_SOFTDATATYPE_CONNPRG :
398+ case Softdatatype . S7COMMP_SOFTDATATYPE_CONNOUC :
399+ case Softdatatype . S7COMMP_SOFTDATATYPE_CONNRID :
400+ case Softdatatype . S7COMMP_SOFTDATATYPE_PORT :
401+ case Softdatatype . S7COMMP_SOFTDATATYPE_RTM :
402+ case Softdatatype . S7COMMP_SOFTDATATYPE_PIP :
403+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBPCYCLE :
404+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBHWINT :
405+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBDIAG :
406+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBTIMEERROR :
407+ case Softdatatype . S7COMMP_SOFTDATATYPE_OBSTARTUP :
408+ case Softdatatype . S7COMMP_SOFTDATATYPE_DBANY :
409+ case Softdatatype . S7COMMP_SOFTDATATYPE_DBWWW :
410+ case Softdatatype . S7COMMP_SOFTDATATYPE_DBDYN :
411+ return true ;
412+ default :
413+ return false ;
414+ }
415+ }
416+
330417 protected class Node
331418 {
332419 public eNodeType NodeType ;
0 commit comments