EVTPARAM_CmpSrv (STRUCT) ¶ TYPE EVTPARAM_CmpSrv : STRUCT <category>Event parameter</category> <element name=”pServiceHandlerParameter” type=”IN”>Pointer to service handler structure</element> InOut: Name Type pServiceHandlerParameter POINTER TO SERVICEHANDLER_PARAMETER
EventIDs (GVL) ¶ InOut: Scope Name Type Initial Constant EVTPARAMID_CmpSrv UDINT 16#1 EVTVERSION_CmpSrv UDINT 16#2
Structs ¶ HEADER_TAG (Struct) PROTOCOL_DATA_UNIT (Struct) SERVICEHANDLER_PARAMETER (Struct)
HEADER_TAG (STRUCT) ¶ TYPE HEADER_TAG : STRUCT InOut: Name Type usHeaderTag UINT usHeaderLength UINT usServiceGroup UINT usService UINT ulSessionID UDINT ulServiceLength UDINT
PROTOCOL_DATA_UNIT (STRUCT) ¶ TYPE PROTOCOL_DATA_UNIT : STRUCT InOut: Name Type pData POINTER TO BYTE ulCount UDINT
SERVICEHANDLER_PARAMETER (STRUCT) ¶ TYPE SERVICEHANDLER_PARAMETER : STRUCT InOut: Name Type Comment ulChannelId UDINT Id of the channel on which the request arrived pHeaderTag POINTER TO HEADER_TAG Pointer to the header struct of the received request pduData PROTOCOL_DATA_UNIT References the request data (without header) pduSendBuffer PROTOCOL_DATA_UNIT Contains the buffer (pointer and length) for the reply data Result RTS_IEC_RESULT Result code; is used as inout parameter. When the corresponding event is posted, then this value is already pre-initalized with error code: - ERR_PENDING: Event was already posted before for the same received service request. The previous call returned ERR_CALL_AGAIN. - All other values (most likely ERR_L7_UNKNOWNCMD): Event for the received service request is posted the first time. Typical result codes, which should be returned by the event handler: - ERR_OK: Received service was completely handled. - ERR_CALL_AGAIN: Received service will be handled asynchronously. Event should be signaled again to poll the service reply. - ERR_L7_UNKNOWNCMD: Service is unknown by the event handler. - All other error codes: Runtime will send this result in a generic error tag as reply (or close the channel).
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 20.04.2021, 15:56:12 companyName string 3S-Smart Software Solutions GmbH libraryFile CmpSrv.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile CmpSrv.clean.json version version 2.0.0.0 ProjectInformation Released bool True LastModificationDateTime date 20.04.2021, 15:56:12 LibraryCategories library-category-list System|SysLibs Author string 3S - Smart Software Solutions GmbH Company System CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 Description See: Description Placeholder CmpSrv Project CmpSrv Title CmpSrv Version version 3.5.17.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. SysTypes2 Interfaces ¶ Library Identification ¶ Name: SysTypes2 Interfaces Version: newest Company: System Namespace: SysTypes Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysTypes2 Interfaces, * (System)
CmpSupervisor Library Documentation ¶ Company System Title CmpSupervisor Version 3.5.17.0 Categories System|SysLibs Author 3S - Smart Software Solutions GmbH Placeholder CmpSupervisor Description 1 ¶ This interface provides a generic and easy to handle supervisor for all vital operations in the runtime system. This interface can be used for example to retrigger a hardware watchdog to detect a failure in such a vital operation (in case of a software error). Interface can be used to: Register/unregister a vital operation for supervision Retrigger a vital operation to be alive There is an explicit dead signal for desperate situations such as memory overwrite, etc. For these operations stTimeoutUs should be set to 0 to disable time check Interfaces to read the global state of all vital operations and to interate over all vital operations Use case: Use supervisor to support a hardware watchdog: A cyclic task checks SupervisorOperationGetState() periodically and retriggers the hardware watchdog. In case the nNumOfFailedOperations is greater than 0 the cyclic task can just prevent the retriggering of the hardware watchdog so that it expires or check the causing operation and in the case it is not that important, give a second chance by reactivating its supervision. This is done by iterating through all operations by SupervisorOperationGetFirst(), SupervisorOperationGetNext(), and SupervisorOperationGetEntry() to find the causing operation and then by calling SupervisorOperationDisable() followed by SupervisorOperationEnable() to reactivate the supervision of the operation. Contents: ¶ EventIDs (GVL) EventParameter EVTPARAM_CmpSupervisor_StateChanged (Struct) SupervisorEntry (Struct) SupervisorFlags (GVL) SupervisorInstance (Struct) SupervisorOperationAlive (Function) SupervisorOperationDead (Function) SupervisorOperationDisable (Function) SupervisorOperationEnable (Function) SupervisorOperationGetEntry (Function) SupervisorOperationGetFirst (Function) SupervisorOperationGetNext (Function) SupervisorOperationGetState2 (Function) SupervisorOperationRegister (Function) SupervisorOperationSetTimeout (Function) SupervisorOperationUnregister (Function) SupervisorState (Struct) Indices and tables ¶ 1 Based on CmpSupervisor.library, last modified 20.04.2021, 15:56:21. LibDoc 4.4.0.0-b.27 The content file CmpSupervisor.clean.json was generated with CODESYS V3.5 SP16 Patch 3 on 20.04.2021, 15:56:21.
SchedRegisterExternalEvent (FUN) ¶ FUNCTION SchedRegisterExternalEvent : RTS_IEC_HANDLE <description> <p>Register an external event, which might be used later by event tasks. You should register those events during the system startup, so that the scheduler knows all events when the application is loaded.</p> <p>Valid Hook: CH_INIT2</p> <p>Note: the parameter pszExtEventName needs to be constantly allocated. It might either be a constant string, a global string variable, or a dynamically allocated string. But the memory needs to be valid during the life time of the event handle.</p> </description> <param name=”pszExtEventName” type=”IN”>Name of the event, as it was specified in the device description. This parameter needs to be constantly allocated</param> <param name=”pResult” type=”INOUT”>Error Code</param> <errorcode name=”RTS_IEC_RESULT” type=”ERR_OK”>Event was registered successfully</errorcode> <errorcode name=”RTS_IEC_RESULT” type=”ERR_NOMEMORY”>There was not enough memory to register the new event handle</errorcode> <result>handle to the event</result> InOut: Scope Name Type Return SchedRegisterExternalEvent RTS_IEC_HANDLE Input pszExtEventName REFERENCE TO STRING pResult POINTER TO RTS_IEC_RESULT