Builder.Reset (METH) ¶ METHOD FINAL Reset Resets the Builder to be empty InOut: Scope Name Type Output eErrorID ERROR
Segments ¶ The handling of UTF-8 encoded strings without additional buffering The specification pbyData and udiSize can be used to describe a memory block that is to be considered for the processing of strings. Receiving Data eErrorID := itfPeer.Receive ( pbyData , udiSize , itfIPAddressFrom , uiPortFrom => uiPortFrom , udiCount => udiCount ); // UDP/IP eErrorID := itfConnection.Read ( pbyData , udiSize , udiCount => udiCount ); // TCP/IP udiCount := TO_UDINT ( SysFileRead ( hFile , pbyData , TO__XWORD ( udiSize ), ADR ( udiResult ))); // File Access udiCount := SysComRead ( hCom , pbyData , udiSize , ulTimeout , ADR ( udiResult )); // Serial Com Sending data eErrorID := itfPeer.Send ( itfIPAddress , uiPort , pbyData , udiSize , udiCount => udiCount ); // UDP/IP eErrorID := itfConnection.Write ( pbyData , udiSize , udiCount => udiCount ); // TCP/IP udiCount := TO_UDINT ( SysFileWrite ( hFile , pbyData , TO__XWORD ( udiSize ), ADR ( udiResult ))); // File Access udiCount := SysComWrite ( hCom , pbyData , udiSize , ulTimeout , ADR ( udiResult )); // Serial Com For all these use cases an IBuilder implementation offers the possibility to provide the buffer. This allows the corresponding IBuilder instance to be extended with the new content without a additional buffer and thus without additional effort for the management of the copy. Read content received by a a network connection to a ``IBuilder`` instance REPEAT eErrorID := itfBuilder.GetCurrentSegment ( pbyData => pbyData , udiSize => udiSize ); eErrorID := itfConnection.Read ( pbyData , udiSize , udiCount => udiCount ); IF eErrorID = ERROR.NO_ERROR AND udiCount > 0 THEN eErrorID := itfBuilder.ValidateSegment ( pbyData , udiCount ); IF eErrorID <> ERROR.NO_ERROR THEN // Handle Error EXIT ; END_IF END_IF UNTIL udiCount = 0 END_REPEAT Write the content of a ``IBuilder`` instance to a network connection pbyData := itfBuilder.GetFirstSegment ( udiSize => udiSize , eErrorID => eErrorID ); WHILE pbyData <> 0 AND eErrorID = ERROR.NO_ERROR DO eErrorID := itfConnection.Write ( pbyData , udiSize , udiCount => udiCount ); IF eErrorID <> ERROR.NO_ERROR OR udiCount <> udiSize THEN // Handle Error EXIT ; END_IF pbyData := itfBuilder.GetNextSegment ( pbyData , udiSize => udiSize , eErrorID => eErrorID ); END_WHILE GetCurrentSegment (Method) GetFirstSegment (Method) GetNextSegment (Method) ValidateSegment (Method)
Builder.GetCurrentSegment (METH) ¶ METHOD FINAL GetCurrentSegment : ERROR Returns the available memory of the free segment InOut: Scope Name Type Comment Return GetCurrentSegment ERROR Output pbyData POINTER TO BYTE Pointer to the first byte of the free segment udiSize UDINT Data size of the free segment
Builder.GetFirstSegment (METH) ¶ METHOD FINAL GetFirstSegment : POINTER TO BYTE Returns the pointer to the first segment of the builder InOut: Scope Name Type Comment Return GetFirstSegment POINTER TO BYTE Output udiSize UDINT Size of the first segment in bytes eErrorID ERROR
CAN low level ¶ CL2Driver (FunctionBlock) DRIVER_CONFIG (Struct)
CL2Driver (FB) ¶ FUNCTION_BLOCK CL2Driver IMPLEMENTS ICL2Driver CAN low-level driver InOut: Scope Name Type Initial Comment Input xEnable BOOL FALSE Enable the CAN driver. driverConfig DRIVER_CONFIG CAN driver configuration xResetBusAlarm BOOL TRUE Reset a CAN bus alarm. If you want to reset by application code set xResetBusAlarm accordingly. If xResetBusAlarm is kept at default TRUE a CAN bus alarm is signaled for one cycle and reset automatically. Output xBusy BOOL True as long as driver is opened. xError BOOL FALSE Error occured. eErrorID ERROR ERROR.NO_ERROR Error status. xBusAlarm BOOL CAN bus alarm. itfCL2Driver ICL2Driver Output to connect other function blocks requiring a CAN driver. Only valid if xBusy is true.
DRIVER_CONFIG (STRUCT) ¶ TYPE DRIVER_CONFIG : STRUCT This data type describes the configuration of a CANbus Driver Attributes: qualified_only InOut: Name Type Comment uiBaudrate UINT Possible values for baud rate [kbit/s]: 10, 20, 50, 100, 125, 250, 500, 800 or 1000. usiNetwork USINT number of the interface (Network ID starts by 0) ctMessages USINT length of the message queue for outgoing messages
Unsafe_SDG_Receiver (FB) ¶ FUNCTION_BLOCK Unsafe_SDG_Receiver J1939-76 Safety SDG receiver. Unsafe_SDG_Receiver does receive J1939-76 SDG messages (SHM and SDM) for a configured SDG produced by a J1939SafetySafe.Safe_SDG_Producer and send by a Unsafe_SDG_Sender via CAN driver. Basics and data flow ¶ For an overview of general data flow see the J1939SafetySafe library main documentation and the J1939 Safety example.project function block J1939_example_CFC. Sequence of operation on update of SHM ¶ SHM_RecvCnt is incremented signaling the SHM data are updated and valid SHM data are updated Sequence of operation on update of SDM ¶ SDM_RecvCnt is incremented signaling the SDM data are updated and valid SDM data are updated InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE Enable the receiver. dwPGN DWORD Parameter Group Number (PGN). usiSrcAddr USINT 0 Source Address. itfCL2Driver ICL2Driver CAN driver to use. Output xBusy BOOL FALSE In operation. xError BOOL FALSE Error occured. eErrorID ERROR ERROR.NO_ERROR Error status SDGU J1939SafetyItf.SAFETY_DATA_GROUP_UNSAFE
Unsafe_SDG_Sender (FB) ¶ FUNCTION_BLOCK Unsafe_SDG_Sender J1939-76 Safety SDG sender. Unsafe_SDG_Sender does send J1939-76 SDG data (SHM and SDM) produced by a J1939SafetySafe.Safe_SDG_Producer via CAN driver. Basics and data flow ¶ For an overview of general data flow see the J1939SafetySafe library main documentation and the J1939 Safety example.project function block J1939_example_CFC. InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE Enable the sender. itfCL2Driver ICL2Driver CAN driver to use. SDGS J1939SafetyItf.SAFETY_DATA_GROUP_SAFE SDGS data to be send. Output xBusy BOOL FALSE In operation. xError BOOL FALSE Error occured. eErrorID ERROR ERROR.NO_ERROR Error status. udiSHMcnt UDINT 0 number of sent SHM udiSDMcnt UDINT 0 number of sent SDM udiSDGcnt UDINT 0 number of sent SDG udiLossCnt UDINT 0 number of lost SDG udiSndErrCnt UDINT 0 number of SDG send errors