IBus ¶ GetBusInfo (Method) GetBusState (Method)
IoDrvEtherNetIPAdapter_Diag.GetBusInfo (METH) ¶ METHOD GetBusInfo : DED.ERROR Returns the bus information of the current node InOut: Scope Name Type Comment Return GetBusInfo DED.ERROR Inout buiInfo DED.BUS_INFO Bus information struct
IoDrvEtherNetIPAdapter_Diag.GetBusState (METH) ¶ METHOD GetBusState : DED.BUS_STATE Returns the bus state of the current node; if device state is ERROR further information can be read by | GetBusError|* InOut: Scope Name Type Comment Return GetBusState DED.BUS_STATE Output xDiagnosisInfoAvailable BOOL If true, diagnosis info can be read by calling GetBusDiagnosisInfo*) eError DED.ERROR
IDevice ¶ CheckCurrentSupportedCommunicationState (Method) CheckSupportedCommunicationState (Method) GetDeviceInfo (Method) GetDeviceState (Method) SetCommunicationState (Method)
Module_Diag.SiblingNodeCount (PROP) ¶ PROPERTY SiblingNodeCount : DED.CAA.Count
IoDrvEtherNetIPAdapter.RegisterCIPObject (METH) ¶ METHOD RegisterCIPObject : BOOL This function is needed, to register extra CIP services by the user. The following example is showing how this is done and how to use UnregisterCIPObject , which is also available over ENIPAdapterRegisterObjects.project . // Called in an IEC task PROGRAM PLC_PRG VAR myObject : GenericCIPObject ; xInit : BOOL ; xUnregister : BOOL ; END_VAR IF NOT xInit THEN // this interface to register cip objects should be published EtherNet_IP_Adapter._cipMessageRouter.Register ( myObject ); // this is how it works with CODESYS V3.5.9.0 //EtherNet_IP_Adapter.RegisterCIPObject(myObject); xInit := TRUE ; END_IF IF xUnregister THEN EtherNet_IP_Adapter._cipMessageRouter.Unregister ( myObject ); // this is how it works with CODESYS V3.5.9.0 //EtherNet_IP_Adapter.UnregisterCIPObject(myObject); xUnregister := FALSE ; END_IF // The FB itself looks like FUNCTION_BLOCK GenericCIPObject EXTENDS LAT.Element IMPLEMENTS CIP_Object.ICIP2 VAR_INPUT END_VAR VAR_OUTPUT uiValue : UINT ; END_VAR VAR _dwInstance : DWORD := 1 ; _wClassID : WORD := 16#64 ; _strEPath : CIP_Object.UnpackedEPATH := ( usiPathSize := 2 , wClassValue := _wClassID , dwInstanceValue := _dwInstance ); END_VAR // ___OBSOLTED___ METHOD Service : CIP_Object.ERROR_CODE VAR_INPUT uiServiceCode : UINT ; usiInstanceNumber : USINT ; pby_Data : POINTER TO BYTE ; uiSizeOfData : UINT ; END_VAR VAR_OUTPUT pby_ResponseData : POINTER TO BYTE ; uiSizeofResponseData : UINT ; END_VAR // ___OBSOLTED___ PROPERTY ClassCode : USINT GET VAR END_VAR ClassCode := to_usint ( _wClassID ); // ___OBSOLTED___ PROPERTY EPATH : CIP_Object.LogicalEPATH GET VAR END_VAR ; // empty // ___OBSOLTED___ PROPERTY InstanceNumber : USINT GET VAR END_VAR ; // empty // The intresting part METHOD ServiceRequest : CIP_Object.ERROR_CODE VAR_INPUT uiServiceCode : UINT ; dwInstanceID : DWORD ; pData : POINTER TO BYTE ; uiDataSize : UINT ; (* Inputs for response callback *) pRequest : POINTER TO CIP_ENC.EncapsulationPacket ; itfCallback : CIP_Object.ICIPCallback ; END_VAR VAR byteBuffer : MEMUtils.ByteBuffer ; bAttributeSegment : BYTE ; wAttributeID : WORD ; pAttData : POINTER TO BYTE ; uiAttDataSize : UINT ; END_VAR PROPERTY ClassID : WORD GET VAR END_VAR ClassID := _wClassID ; PROPERTY InstanceID : DWORD GET VAR END_VAR InstanceID := _dwInstance ; PROPERTY UnpackedEPATH : CIP_Object.UnpackedEPATH GET VAR END_VAR UnpackedEPATH := _strEPath ; ; Now you are able to call over the IEC Scanner site over the library EtherNetIPServices the service: // Called in an IEC task PROGRAM PLC_PRG VAR setAttribute : ENIP.Set_Attribute_Single ; getAttribute : ENIP.Get_Attribute_Single ; uiSetValue : UINT := 16#CAFE ; uiGetValue : UINT ; END_VAR setAttribute ( xExecute := , xDone => , xBusy => , xError => , itfEtherNetIPDevice := EtherNetIP_Adapter , eClass := 16#64 , dwInstance := 1 , eError => , pData := ADR ( uiSetValue ), udiDataSize := SIZEOF ( uiSetValue ), wAttribute := 3 ); getAttribute ( xExecute := , xDone => , xBusy => , xError => , itfEtherNetIPDevice := EtherNetIP_Adapter , eClass := 16#64 , dwInstance := 1 , eError => , pData := ADR ( uiGetValue ), udiDataSize := SIZEOF ( uiGetValue ), wAttribute := 3 , udiReceivedDataSize => ); ; InOut: Scope Name Type Return RegisterCIPObject BOOL Input itfCIP CIP_Object.ICIP2
IoDrvEtherNetIPAdapter.RegisterSymbolicCIPObject (METH) ¶ METHOD RegisterSymbolicCIPObject : BOOL This function is needed, to register extra symbolic CIP services by the user. The following example is showing how this is done and how to use UnregisterSymbolicCIPObject . PROGRAM PLC_PRG VAR Object : GenericObject ; xRegister : BOOL ; xUnregister : BOOL ; END_VAR IF xRegister THEN EtherNet_IP_Adapter.RegisterSymbolicCIPObject ( Object ); xRegister := FALSE ; END_IF IF xUnregister THEN EtherNet_IP_Adapter.UnregisterSymbolicCIPObject ( Object ); xUnRegister := FALSE ; END_IF FUNCTION_BLOCK GenericObject EXTENDS LAT.Element IMPLEMENTS CIP_Object.ICIPSymbolObject VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR Tag : STRING := 'Test' ; END_VAR InOut: Scope Name Type Return RegisterSymbolicCIPObject BOOL Input itfCIPSymbolicObject CIP_Object.ICIPSymbolObject
IoDrvEtherNetIPAdapter.UnregisterCIPObject (METH) ¶ METHOD UnregisterCIPObject : BOOL Removes a registered CIP object, which was previously added over RegisterCIPObject . See RegisterCIPObject for an example how to use this function. InOut: Scope Name Type Return UnregisterCIPObject BOOL Input itfCIP CIP_Object.ICIP2
IoDrvEtherNetIPAdapter.UnregisterSymbolicCIPObject (METH) ¶ METHOD UnregisterSymbolicCIPObject : BOOL Removes a registered symbolic CIP object, which was previously added over RegisterSymbolicCIPObject . See RegisterSymbolicCIPObject for an example how to use this function. InOut: Scope Name Type Return UnregisterSymbolicCIPObject BOOL Input itfCIPSymbolicObject CIP_Object.ICIPSymbolObject
IoDrvEtherNetIPAdapter.IOCycle (METH) ¶ METHOD PUBLIC IOCycle This method is called, when an EtherNet/IP Adapter is added to the project over an own IEC-Task. This method isn´t designed to get called from anywhere else.