From 63fa9ddf0928bf2fc518f73d3ddaed2d98ac020e Mon Sep 17 00:00:00 2001 From: Janez Govednik Date: Sun, 31 Dec 2023 07:05:12 -0800 Subject: [PATCH 1/5] Adding serial driver for Oerlikon/Leybold TD400 --- .../DUTs/Oerlikon/ST_TD400Control.TcDUT | 15 + .../DUTs/Oerlikon/ST_TD400Status.TcDUT | 78 +++++ .../LCLSVacuumSerialDriverLib.plcproj | 19 ++ .../LCLSVacuumSerialDriverLib.tmc | 132 ++++---- .../FB_OERLIKON_TD400_COM.TcPOU | 47 +++ .../Oerlikon TD400/FB_TD400SerialDriver.TcPOU | 297 ++++++++++++++++++ .../Oerlikon TD400/FB_TD400Transaction.TcPOU | 225 +++++++++++++ .../Oerlikon TD400/F_CalcTD400Checksum.TcPOU | 21 ++ 8 files changed, 781 insertions(+), 53 deletions(-) create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Control.TcDUT create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Status.TcDUT create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_COM.TcPOU create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400Transaction.TcPOU create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Control.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Control.TcDUT new file mode 100644 index 0000000..00cf68c --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Control.TcDUT @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Status.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Status.TcDUT new file mode 100644 index 0000000..7f459a0 --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD400Status.TcDUT @@ -0,0 +1,78 @@ + + + + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj index 39490a7..feae826 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj @@ -43,6 +43,12 @@ Code + + Code + + + Code + Code @@ -89,6 +95,18 @@ Code 00000000-0000-0000-0000-000000000000 + + Code + + + Code + + + Code + + + Code + Code 00000000-0000-0000-0000-000000000000 @@ -123,6 +141,7 @@ + diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc index d38d0a3..9bae5a7 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc @@ -1,4 +1,4 @@ -AMSNETID48BYTE06%d.%d.%d.%d.%d.%d[0][1][2][3][4][5]ST_System88xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832I_EcatMaster1AMSNETID4840namingomitTcAddressTypeInputE_PressureState16INTPressInvalid0GaugeDisconnected1OoR2Off3Starting4Valid5ValidHi6ValidLo7Gauge_Type16INTPG722B0IG9031PG9072IG9093PG9254ST_VG1056rPRESSREALST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33E_PressureState16INTOff0GaugeDisconnected1OoR2PressInvalid3Starting4Valid5ValidHi6ValidLo7Gauge_Type16INTPG722B0IG9031PG9072IG9093PG9254ST_VG1056rPRESSREAL320pytmc pv: PRESS; @@ -19,10 +19,10 @@ These features aren't disabled, they just aren't used, think child/parent classe io: i; eStateE_PressureState1648pytmc pv: STATE; - field: ZRST PressInvalid; + field: ZRST Off; field: ONST GaugeDisconnected; field: TWST OoR; - field: THST Off; + field: THST PressInvalid; field: FRST Starting; field: FVST Valid; field: SXST ValidHi; @@ -33,23 +33,31 @@ These features aren't disabled, they just aren't used, think child/parent classe io: io; field: ZNAM OFF; field: ONAM ON; - i_iPRESS_RINT1680pytmc + xAutoOnBOOL8721pytmc + pv: Auto_On; + field: ZNAM FALSE; + field: ONAM TRUE; + io:io; + iAutoOnTimerINT1680pytmc + pv: AutoOn_timer; + io:i; + i_iPRESS_RINT1696pytmc pv: PRESS_AI; io: i; - i_xHV_ONBOOL896pytmc + i_xHV_ONBOOL8112pytmc pv: HV_ON; io: i; - i_xDisc_ActiveBOOL8104pytmc + i_xDisc_ActiveBOOL8120pytmc pv: DISC_ACTIVE; field: ZNAM NO DISC; field: ONAM DISC ACTIVE; io: i; - q_xHV_DISBOOL8112pytmc + q_xHV_DISBOOL8128pytmc pv: HV_DIS_DO; io: i; field: ZNAM FALSE ; field: ONAM TRUE ; - wHV_ROWORD16128xBAKEOUTBOOL8144eTYPEGauge_Type161602iTYPEINT161762wPGWORD16192xTurnOnTimeBOOL8208iVacSpINT16224rVAC_SPREAL322560.001pytmc + wHV_ROWORD16144xBAKEOUTBOOL8160eTYPEGauge_Type161762iTYPEINT161922wPGWORD16208xTurnOnTimeBOOL8224iVacSpINT16240rVAC_SPREAL322560.001pytmc pv: VAC_SP; io:io; field: HOPR 1000 @@ -84,45 +92,59 @@ These features aren't disabled, they just aren't used, think child/parent classe io: io; field: ZNAM OFF ; field: ONAM ON ; - sPathSTRING(80)648368rFULL_SCALEREAL3210241000FW_GetCurTaskIndex96nIndexBYTE864ItemTypeOutputPouTypeFunctionBlockconditionalshowGETCURTASKINDEX256indexBYTE864ItemTypeOutputfbGetCurTaskIndexFW_GetCurTaskIndex96128conditionalshowPouTypeFunctionBlockconditionalshow_all_localsST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296T_MaxString2048STRING(255)TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictE_Subsystem16WORDNILVALUE0VACUUM1MPS2MOTION3FIELDBUS4SDS5OPTICS6I_ArgumentsChangeListener64PVOIDOnArgumentsChangedITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL81097880bErrorBOOL81097944hrErrorCodeHRESULT321097960nStringSizeUDINT321097928sResultSTRING(255)20481097952__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertymonitoringcallInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32propertymonitoringcall__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232propertymonitoringcall__getsResultSTRING(255)2048sResultSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertymonitoringcallPouTypeFunctionBlockenable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyno_assignTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOID__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32propertymonitoringcall__getsNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcEventEntry192uuidEventClassGUID1280nEventIdUDINT32128eSeverityTcEventSeverity16160I_TcEventBase64PVOID__geteSeverityTcEventSeverity16propertymonitoringcall__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64propertymonitoringcall__getnEventIdUDINT32propertymonitoringcall__getsEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getsEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputRequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputIQueryInterface64PVOID__GetInterfacePointerBOOL8pRefDWORD64__GetInterfaceReferenceBOOL8nInterfaceIdDINT32pRefDWORD64TcEventArgumentType16INT012345678910111213141516171819plcAttribute_qualified_onlyplcAttribute_strictITcArguments32ITcUnknownCountHRESULT32nCountUDINT32AddArgumentHRESULT32eTypeTcEventArgumentType16pDataPVOID32cbDataUDINT32GetHRESULT32nIndexUDINT32eTypeTcEventArgumentType32ppDataPVOID32ClearHRESULT32GetArgumentTypesHRESULT32pArgumentTypesTcEventArgumentType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32pDataBYTE32I_TcArguments64IQueryInterface__getipDataITcArguments64propertyconditionalshowAddBlobI_TcArguments64pDataPVOID64cbDataUINT16AddBoolI_TcArguments64valueBOOL8AddByteI_TcArguments64valueBYTE8AddDIntI_TcArguments64valueDINT32AddDWordI_TcArguments64valueDWORD32AddEventReferenceExI_TcArguments64stEventEntryTcEventEntry192AddEventReferenceIdI_TcArguments64nEventIdUDINT32AddEventReferenceIdGuidI_TcArguments64nEventIdUDINT32EventClassGUID128AddIntI_TcArguments64valueINT16AddLIntI_TcArguments64valueLINT64AddLRealI_TcArguments64valueLREAL64AddRealI_TcArguments64valueREAL32AddSIntI_TcArguments64valueSINT8AddStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddStringByValueI_TcArguments64valueT_MaxString2048AddUDIntI_TcArguments64valueUDINT32AddUIntI_TcArguments64valueUINT16AddULIntI_TcArguments64valueULINT64AddUSIntI_TcArguments64valueUSINT8AddWordI_TcArguments64valueWORD16AddWStringI_TcArguments64valueWSTRING(80)64ItemTypeInOutAddWStringByValueI_TcArguments64valueWSTRING(255)4096ClearI_TcArguments64FB_TcSourceInfo2944I_TcSourceInfonIdUDINT3210977681097816sNameSTRING(255)204810978401097864__setbCutInstancePathByLastInstbCutInstancePathByLastInstBOOL8propertyClearExtendNameBOOL8sExtensionSTRING(255)2048__getipDataITcSourceInfo64ipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32nIdUDINT32propertymonitoringcallResetToDefault_sInstancePathSTRING(255)2048__getguidGUID128guidGUID128property__setnIdnIdUDINT32monitoringcallpropertymonitoringcall__setguidguidGUID128propertyEqualsToBOOL8ipOtherI_TcSourceInfo64__getsNameSTRING(255)2048sNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__setsNamesNameSTRING(255)2048monitoringcallTcEncodingUTF-8propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockno_explicit_calldo not call this POU directlyFB_TcEventBase4032I_ArgumentsChangeListenerfbSourceInfoFB_TcSourceInfo2944512.bCutInstancePathByLastInst1conditionalshow__REQUESTEVENTCLASSNAME__FBRESULTFB_AsyncStrResult1283648conditionalshow__REQUESTEVENTCLASSNAME__BBUSYBOOL83776conditionalshow__REQUESTEVENTTEXT__FBRESULTFB_AsyncStrResult1283840conditionalshow__REQUESTEVENTTEXT__BBUSYBOOL83968conditionalshoweSeverityTcEventSeverity161098056ipSourceInfoI_TcSourceInfo641098016nEventIdUDINT321098192sEventClassNameSTRING(255)20481098112sEventTextSTRING(255)20481098200EqualsToEventClassBOOL8OtherEventClassGUID128_EventClassGUID128GetEventClassNameHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32ReleaseHRESULT32UpdateLangId__getipSourceInfoI_TcSourceInfo64ipSourceInfoI_TcSourceInfo64propertymonitoringcallEqualsToBOOL8ipOtherI_TcEventBase64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshow__getEventClassGUID128EventClassGUID128ipTmpEventITcEvent64property__geteSeverityTcEventSeverity16eSeverityTcEventSeverity16ipTmpEventITcEvent64propertymonitoringcall__getstEventEntryTcEventEntry192stEventEntryTcEventEntry192propertyOnCreateHRESULT32EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16RequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTTEXT__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTTEXT__BBUSYOnArgumentsChanged__getsEventClassNameSTRING(255)2048sEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getipArgumentsI_TcArguments64ipArgumentsI_TcArguments64propertyGetEventTextHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32ipTmpEventITcEvent64RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTCLASSNAME__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTCLASSNAME__BBUSYEqualsToEventEntryExBOOL8stOtherTcEventEntry192__getnEventIdUDINT32nEventIdUDINT32ipTmpEventITcEvent64propertymonitoringcall__getsEventTextSTRING(255)2048sEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockconditionalshow_all_localsno_explicit_calldo not call this POU directlyno_assignI_TcMessage64I_TcEventBaseSendHRESULT32nTimeStampULINT64ITcMessage32ITcEventSetJsonAttributeHRESULT32sJsonAttributePCCH32GetArgumentsHRESULT32pipArgumentsITcArguments32SendHRESULT32timeStampULINT64ITcMessage232ITcMessageGetTimeSentHRESULT32timeStampULINT32FB_TcMessage4160FB_TcEventBaseI_TcMessagenTimeSentULINT641098248SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64InitipMessageITcMessage64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getnTimeSentULINT64nTimeSentULINT64ipMessage2ITcMessage264nTimeStampULINT64propertymonitoringcallTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshowSendHRESULT32nTimeStampULINT64TcEncodingFILETIMEReleaseHRESULT32PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyF_TRIGsPathSTRING(80)648368rFULL_SCALEREAL3210241000FW_GetCurTaskIndex96nIndexBYTE864ItemTypeOutputPouTypeFunctionBlockconditionalshowGETCURTASKINDEX256indexBYTE864ItemTypeOutputfbGetCurTaskIndexFW_GetCurTaskIndex96128conditionalshowPouTypeFunctionBlockconditionalshow_all_localsPlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296T_MaxString2048STRING(255)TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictE_Subsystem16WORDNILVALUE0VACUUM1MPS2MOTION3FIELDBUS4SDS5OPTICS6I_ArgumentsChangeListener64PVOIDOnArgumentsChangedITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL879363904bErrorBOOL879363976hrErrorCodeHRESULT3279363992nStringSizeUDINT3279363952sResultSTRING(255)204879363984__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertymonitoringcallInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32pEmptySTRING(80)64propertymonitoringcallClear__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232propertymonitoringcall__getsResultSTRING(255)2048sResultSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertymonitoringcallPouTypeFunctionBlockenable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOID__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32propertymonitoringcall__getsNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcEventEntry192uuidEventClassGUID1280nEventIdUDINT32128eSeverityTcEventSeverity16160I_TcEventBase64PVOID__geteSeverityTcEventSeverity16propertymonitoringcall__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64propertymonitoringcall__getnEventIdUDINT32propertymonitoringcall__getsEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getsEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputRequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputIQueryInterface64PVOID__GetInterfacePointerBOOL8pRefDWORD64__GetInterfaceReferenceBOOL8nInterfaceIdDINT32pRefDWORD64TcEventArgumentType16INT012345678910111213141516171819plcAttribute_qualified_onlyplcAttribute_strictITcArguments32ITcUnknownCountHRESULT32nCountUDINT32AddArgumentHRESULT32eTypeTcEventArgumentType16pDataPVOID32cbDataUDINT32GetHRESULT32nIndexUDINT32eTypeTcEventArgumentType32ppDataPVOID32ClearHRESULT32GetArgumentTypesHRESULT32pArgumentTypesTcEventArgumentType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32pDataBYTE32I_TcArguments64IQueryInterface__getipDataITcArguments64propertyconditionalshow__getnCountUDINT32propertyAddBlobI_TcArguments64pDataPVOID64cbDataUINT16AddBoolI_TcArguments64valueBOOL8AddByteI_TcArguments64valueBYTE8AddDIntI_TcArguments64valueDINT32AddDWordI_TcArguments64valueDWORD32AddEventReferenceExI_TcArguments64stEventEntryTcEventEntry192AddEventReferenceIdI_TcArguments64nEventIdUDINT32AddEventReferenceIdGuidI_TcArguments64nEventIdUDINT32EventClassGUID128AddIntI_TcArguments64valueINT16AddLIntI_TcArguments64valueLINT64AddLRealI_TcArguments64valueLREAL64AddRealI_TcArguments64valueREAL32AddSIntI_TcArguments64valueSINT8AddStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddStringByValueI_TcArguments64valueT_MaxString2048AddUDIntI_TcArguments64valueUDINT32AddUIntI_TcArguments64valueUINT16AddULIntI_TcArguments64valueULINT64AddUSIntI_TcArguments64valueUSINT8AddUtf8EncodedStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddWordI_TcArguments64valueWORD16AddWStringI_TcArguments64valueWSTRING(80)64ItemTypeInOutAddWStringByValueI_TcArguments64valueWSTRING(255)4096ClearI_TcArguments64ITcEventUniqueIdProvider32ITcUnknownGetUniqueIdHRESULT32idUDINT32FB_TcSourceInfo3008I_TcSourceInfonIdUDINT327936378479363832sNameSTRING(255)20487936386479363888ExtendNameBOOL8sExtensionSTRING(255)2048__getipDataITcSourceInfo64ipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32nIdUDINT32propertymonitoringcallResetToDefaultHRESULT32Clear__setnIdnIdUDINT32monitoringcallpropertymonitoringcall__setguidguidGUID128propertyEqualsToBOOL8ipOtherI_TcSourceInfo64__getguidGUID128guidGUID128property__getsNameSTRING(255)2048sNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__setsNamesNameSTRING(255)2048monitoringcallTcEncodingUTF-8propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockno_explicit_calldo not call this POU directlyFB_TcEventBase4096I_ArgumentsChangeListenerfbSourceInfoFB_TcSourceInfo3008512conditionalshow__REQUESTEVENTCLASSNAME__FBRESULTFB_AsyncStrResult1283712conditionalshow__REQUESTEVENTCLASSNAME__BBUSYBOOL83840conditionalshow__REQUESTEVENTTEXT__FBRESULTFB_AsyncStrResult1283904conditionalshow__REQUESTEVENTTEXT__BBUSYBOOL84032conditionalshoweSeverityTcEventSeverity1679364088ipSourceInfoI_TcSourceInfo6479364048nEventIdUDINT3279364224nUniqueIdUDINT3279364232sEventClassNameSTRING(255)204879364144sEventTextSTRING(255)204879364240EqualsToEventClassBOOL8OtherEventClassGUID128_EventClassGUID128GetEventClassNameHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32ReleaseHRESULT32UpdateLangId__getipSourceInfoI_TcSourceInfo64ipSourceInfoI_TcSourceInfo64propertymonitoringcallEqualsToBOOL8ipOtherI_TcEventBase64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshow__getEventClassGUID128EventClassGUID128ipTmpEventITcEvent64property__geteSeverityTcEventSeverity16eSeverityTcEventSeverity16ipTmpEventITcEvent64propertymonitoringcall__getstEventEntryTcEventEntry192stEventEntryTcEventEntry192propertyOnCreateHRESULT32EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16RequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTTEXT__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTTEXT__BBUSYOnArgumentsChanged__getsEventClassNameSTRING(255)2048sEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getipArgumentsI_TcArguments64ipArgumentsI_TcArguments64propertyGetEventTextHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32ipTmpEventITcEvent64RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTCLASSNAME__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTCLASSNAME__BBUSYEqualsToEventEntryExBOOL8stOtherTcEventEntry192__getnEventIdUDINT32nEventIdUDINT32ipTmpEventITcEvent64propertymonitoringcall__getnUniqueIdUDINT32nUniqueIdUDINT32ipTmpEventITcEvent64ipProviderITcEventUniqueIdProvider64propertymonitoringcall__getsEventTextSTRING(255)2048sEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockconditionalshow_all_localsno_explicit_calldo not call this POU directlyI_TcMessage64I_TcEventBaseSendHRESULT32nTimeStampULINT64ITcMessage32ITcEventSetJsonAttributeHRESULT32sJsonAttributePCCH32GetArgumentsHRESULT32pipArgumentsITcArguments32SendHRESULT32timeStampULINT64ITcMessage232ITcMessageGetTimeSentHRESULT32timeStampULINT32FB_TcMessage4224FB_TcEventBaseI_TcMessagenTimeSentULINT6479364288SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64InitipMessageITcMessage64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getnTimeSentULINT64nTimeSentULINT64ipMessage2ITcMessage264nTimeStampULINT64propertymonitoringcallTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshowSendHRESULT32nTimeStampULINT64ReleaseHRESULT32PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyF_TRIG96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL8801conditionalshowPouTypeFunctionBlockconditionalshow_all_localsR_TRIG96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL880conditionalshowPouTypeFunctionBlockconditionalshow_all_localsFB_LogMessage85632sMsgT_MaxString204864ItemTypeInputeSevrTcEventSeverity1621120ItemTypeInputeSubsystemE_Subsystem162128ItemTypeInputsJsonSTRING(7000)560082144{}ItemTypeInputnMinTimeViolationAcceptableINT16581605ItemTypeInputnLocalTripThresholdTIME32581761ItemTypeInputnTrickleTripThresholdTIME> LocalTripThreshold]]>3258208100ItemTypeInputnTripResetPeriodTIME3258240600000ItemTypeInputbEnableAutoResetBOOL8582721ItemTypeInputbInitializedBOOL8582800bInitFailedBOOL8582880sSubsystemSourceSTRING(80)64858296fbMessageFB_TcMessage6458944fbMessagesFB_TcMessage052080059008fbSourceFB_TcSourceInfo294479808ipResultMessageI_TcMessage6482752hrHRESULT3282816hrLastInternalErrorHRESULT3282848eTraceLevelTcEventSeverity16828800bFirstCallBOOL8828961sPathT_MaxString204882904instance-pathnoinitnTotalEventsUINT1684960nTimesViolatedINT1684976LastCallTimeULINT6484992CurrentCallTimeULINT6485056DeltaSinceLastCallULINT6485120WhenTripsClearedULINT6485184ftTrippedReleasedF_TRIG9685248bLocalTrickleTrippedBOOL885344bLocalTrippedBOOL885352bTrippedBOOL885360pytmc +]]>96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL880conditionalshowPouTypeFunctionBlockconditionalshow_all_localsFB_LogMessage86016sMsgT_MaxString204864ItemTypeInputeSevrTcEventSeverity1621120ItemTypeInputeSubsystemE_Subsystem162128ItemTypeInputsJsonSTRING(7000)560082144{}ItemTypeInputnMinTimeViolationAcceptableINT16581605ItemTypeInputnLocalTripThresholdTIME32581761ItemTypeInputnTrickleTripThresholdTIME> LocalTripThreshold]]>3258208100ItemTypeInputnTripResetPeriodTIME3258240600000ItemTypeInputbEnableAutoResetBOOL8582721ItemTypeInputbInitializedBOOL8582800bInitFailedBOOL8582880sSubsystemSourceSTRING(80)64858296fbMessageFB_TcMessage6458944fbMessagesFB_TcMessage052112059008fbSourceFB_TcSourceInfo300880128ipResultMessageI_TcMessage6483136hrHRESULT3283200hrLastInternalErrorHRESULT3283232eTraceLevelTcEventSeverity16832640bFirstCallBOOL8832801sPathT_MaxString204883288instance-pathnoinitnTimesViolatedINT1685344LastCallTimeULINT6485376CurrentCallTimeULINT6485440DeltaSinceLastCallULINT6485504WhenTripsClearedULINT6485568ftTrippedReleasedF_TRIG9685632bLocalTrickleTrippedBOOL885728bLocalTrippedBOOL885736bTrippedBOOL885744pytmc pv: Tripped io: i field: DESC Log message FB tripped - bResetBreakerBOOL885368pytmc + bResetBreakerBOOL885752pytmc pv: Reset io: o field: DESC Rising-edge reset of trip - rtResetBreakerR_TRIG9685376rtTrippedR_TRIG9685504CircuitBreakerPouTypeFunctionBlockreflectionE_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType1600cbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640T_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINTrtResetBreakerR_TRIG9685760rtTrippedR_TRIG9685888CircuitBreakerPouTypeFunctionBlockreflectionT_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232E_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType1600cbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINT320standardNameSTRING(31)25632standardDateTIMESTRUCT128288standardBiasDINT32416daylightNameSTRING(31)256448daylightDateTIMESTRUCT128704daylightBiasDINT32832I_TestResultFormatter64PVOIDFormatNumberOfTestSuitesUINT16NumberOfTestCasesUINT16NumberOfSuccessfulTestCasesUINT16NumberOfFailedTestCasesUINT16BusyBOOL8ItemTypeOutputTON256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockFB_ADSTestResultFormatter128704daylightBiasDINT32832TOF256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder0UpperBorder1000UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder0UpperBorder100E_AssertionType8BYTEType_UNDEFINED0Type_ANY1Type_BOOL2Type_BYTE3Type_DATE4Type_DATE_AND_TIME5Type_DINT6Type_DWORD7Type_INT8Type_LINT9Type_LREAL10Type_LTIME11Type_LWORD12Type_REAL13Type_SINT14Type_STRING15Type_TIME16Type_TIME_OF_DAY17Type_UDINT18Type_UINT19Type_ULINT20Type_USINT21Type_WORD22Type_WSTRING23Type_Array2D_LREAL24Type_Array2D_REAL25Type_Array3D_LREAL26Type_Array3D_REAL27Type_Array_BOOL28Type_Array_BYTE29Type_Array_DINT30Type_Array_DWORD31Type_Array_INT32Type_Array_LINT33Type_Array_LREAL34Type_Array_LWORD35Type_Array_REAL36Type_Array_SINT37Type_Array_UDINT38Type_Array_UINT39Type_Array_ULINT40Type_Array_USINT41Type_Array_WORD42ST_TestCaseResult6192TestNameT_MaxString20480TestClassNameT_MaxString20482048TestIsFailedBOOL84096TestIsSkippedBOOL84104FailureMessageT_MaxString20484112FailureTypeE_AssertionType86160NumberOfAssertsUINT166176ST_TestSuiteResult621296NameT_MaxString20480IdentityUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)162048NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162064NumberOfFailedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162080TestCaseResultsST_TestCaseResult11006192002096ST_TestSuiteResults621296064NumberOfTestSuitesUINT160NumberOfTestCasesUINT1616NumberOfSuccessfulTestCasesUINT1632NumberOfFailedTestCasesUINT1648TestSuiteResultsST_TestSuiteResult1100062129600064I_TestResults64PVOIDGetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder1UpperBorder1000FB_TestResults621296384I_TestResultsTestSuiteResultsST_TestSuiteResults621296064128StoringTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296192StoringTestSuiteTriggerR_TRIG96621296256StoredTestSuiteResultsBOOL8621296352StoredGeneralTestResultsBOOL8621296360NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296368GetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64PouTypeFunctionBlockI_TestResultLogger64PVOIDLogTestSuiteResultsUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100FB_AdsTestResultLogger448I_TestResultFormatterADSDelayTimerTON256128.PT300LastPrintStateUSINT83840PrintStateUSINT83920FormatNumberOfTestSuitesUINT16NumberOfTestCasesUINT16NumberOfSuccessfulTestCasesUINT16NumberOfFailedTestCasesUINT16BusyBOOL8ItemTypeOutputErrorCodeDINT32PouTypeFunctionBlockFB_TcUnitRunner384I_TestResultLoggerTestResultsI_TestResults64128PrintingTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16192PrintingTestSuiteTriggerR_TRIG96256PrintedFinalTestResultsBOOL8352PrintedTestSuitesResultsBOOL8360LogTestSuiteResultsTcUnitTestResultsST_TestSuiteResults64StringToPrintT_MaxString2048TestsInTestSuiteCounterUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16MaxNumberOfTestsToPrintUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648PouTypeFunctionBlockRTS_IEC_RESULT32UDINTACCESS_MODE32UDINTAM_READ0AM_WRITE1AM_APPEND2AM_READ_PLUS3AM_WRITE_PLUS4AM_APPEND_PLUS5RTS_IEC_SIZE64BYTERTS_IEC_HANDLE64BYTEFB_FileControl192FileAccessModeACCESS_MODE32645FileHandleRTS_IEC_HANDLE64128ReadRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32FileSizeRTS_IEC_SIZE64ItemTypeOutputCloseRTS_IEC_RESULT32OpenRTS_IEC_RESULT32FileNameT_MaxString2048FileAccessModeACCESS_MODE32DeleteRTS_IEC_RESULT32FileNameT_MaxString2048WriteRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32PouTypeFunctionBlockE_XmlError8BYTEOk0ErrorMaxBufferLen1ErrorStringLen2Error3FB_StreamBuffer192_PointerToStringBufferBYTE6464_BufferSizeUDINT32128_LengthUDINT32160CutOffT_MaxString2048StartPosUDINT32CutLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCutBYTE64PointerToByteBufferBYTE64FindUDINT32SearchStringSTRING(80)648StartPosUDINT32LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64FindBackUDINT32SearchStringT_MaxString2048LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64__getLengthUDINT32LengthUDINT32propertyClearCountUDINT32__setAppendAppendT_MaxString2048ByteInBYTE64ByteBufferBYTE64property__getBufferSizeUDINT32BufferSizeUDINT32property__setLengthLengthUDINT32propertySetBufferBOOL8PointerToBufferAddressBYTE64SizeOfBufferUDINT32CopyT_MaxString2048StartPosUDINT32EndPosUDINT32CopyLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCopyBYTE64PointerToBufferBYTE64CurPosUDINT32PouTypeFunctionBlockFB_XmlControl6016XmlBufferFB_StreamBuffer19264TagListBufferFB_StreamBuffer192256TagsT_MaxString2048448TagListSeekBufferFB_StreamBuffer1922496TagsSeekSTRING(80)6482688TagBufferFB_StreamBuffer1923392TagT_MaxString20483584TagOpenBOOL85632SelectUDINT325664SearchPositionUDINT325696TAG_OPENSTRING(1)165728<TAG_CLOSESTRING(1)165744>END_TAG_CLOSESTRING(2)245760/>SPACESTRING(1)165784 EQUALSSTRING(1)165800=QUOTESTRING(1)165816"BACK_SLASHSTRING(1)165832\FORWARD_SLASHSTRING(1)165848/OPEN_COMMENTSTRING(5)485864<!-- CLOSE_COMMENTSTRING(4)405912 -->TABSTRING(2)245952 CR_LFSTRING(4)405976 +NewParameterNameT_MaxString2048ValueT_MaxString2048NewTagNameT_MaxString2048CloseTagT_MaxString2048ClosedTagT_MaxString2048WriteDocumentHeaderHeaderT_MaxString2048NewCommentCommentT_MaxString2048__getLengthUDINT32LengthUDINT32propertyNewTagDataDataT_MaxString2048SetBufferPointerToBufferBYTE64SizeOfBufferUDINT32ClearBufferToStartBufferPouTypeFunctionBlockFB_xUnitXmlPublisher530944I_TestResultLoggerTestResultsI_TestResults64128AccessModeACCESS_MODE321924FileFB_FileControl192256XmlFB_XmlControl6016448BufferInitialisedBOOL864640BufferBYTE0655355242806472WritingTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16530752PublishTriggerR_TRIG96530816DeleteOpenWriteCloseRTS_IEC_RESULT32LogTestSuiteResultsUnitTestResultsST_TestSuiteResults64CurrentSuiteNumberUINT16CurrentTestCountUINT16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648InitialisedBOOL8PouTypeFunctionBlockFB_TcUnitRunner768AllTestSuitesFinishedBOOL8640ADSTestResultFormatterFB_ADSTestResultFormatter448128TestResultPrinterI_TestResultFormatter64576NumberOfTestSuitesFinishedUINT166400NumberOfTestCasesUINT166560NumberOfFailedTestCasesUINT166720NumberOfSuccessfulTestCasesUINT166880DonePrintingTestResultsBOOL8704AbortRunningTestSuitesBOOL8712AbortRunningTestSuiteTestsRunTestSuiteTestsCounterUINT16BusyPrintingBOOL8NumberOfTestSuitesFinished_Temp621828352AllTestSuitesFinishedBOOL8640TestResultsFB_TestResults621296384128AdsTestResultLoggerFB_AdsTestResultLogger384621296512old_input_assignmentsTestResultLoggerI_TestResultLogger64621296896AbortRunningTestSuitesBOOL8621296960xUnitXmlPublisherFB_xUnitXmlPublisher530944621297024old_input_assignmentsXmlTestResultPublisherI_TestResultLogger64621827968__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITEUINT166218280321__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESTOF256621828096AbortRunningTestSuiteTestsRunTestSuiteTestsInSequenceTimeBetweenTestSuitesExecutionTIME32BusyPrintingBOOL8NumberOfTestSuitesFinishedUINT16CurrentlyRunningTestSuiteUINT16uselocation__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITETimerBetweenExecutionOfTestSuitesTOF256uselocation__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESRunTestSuiteTestsCounterUINT16BusyPrintingBOOL8NumberOfTestSuitesFinishedUINT16NumberOfTestCases_TempUINT16NumberOfFailedTestCases_TempUINT16NumberOfSuccessfulTestCases_TempUINT16PouTypeFunctionBlockTYPE_CLASS32DWORDTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38AnyType128pValueBYTE640diSizeDINT3264TypeClassTYPE_CLASS3296linkalwaysFB_AnyComparator) between two instances of ANY. -]]>384AnyValueOneAnyType12864ItemTypeInputanytypeclassANYAnyValueTwoAnyType128192ItemTypeInputanytypeclassANYDataTypesNotEqualsBOOL8320ItemTypeOutputDataSizeNotEqualsBOOL8328ItemTypeOutputDataContentNotEqualsBOOL8336ItemTypeOutputIteratorCounterDINT32352PouTypeFunctionBlockhasanytypeE_TypeFieldParam16INTTYPEFIELD_UNKNOWN0TYPEFIELD_B1TYPEFIELD_O2TYPEFIELD_U3TYPEFIELD_C4TYPEFIELD_F5TYPEFIELD_D6TYPEFIELD_S7TYPEFIELD_XU8TYPEFIELD_XL9TYPEFIELD_EU10TYPEFIELD_EL11ST_FormatParameters160bPercentBOOL80bFlagsBOOL88bWidthBOOL816bDotBOOL824bPrecisionBOOL832bTypeBOOL840bAlignBOOL848bSignBOOL856bNullBOOL864bBlankBOOL872bHashBOOL880iWidthINT1696iPrecisionINT16112bWidthAsteriskBOOL8128bPrecisionAsteriskBOOL8136eTypeE_TypeFieldParam16144conditionalshowFB_FormatString8576sFormatT_MaxString204864ItemTypeInputarg1T_Arg1282112ItemTypeInputarg2T_Arg1282240ItemTypeInputarg3T_Arg1282368ItemTypeInputarg4T_Arg1282496ItemTypeInputarg5T_Arg1282624ItemTypeInputarg6T_Arg1282752ItemTypeInputarg7T_Arg1282880ItemTypeInputarg8T_Arg1283008ItemTypeInputarg9T_Arg1283136ItemTypeInputarg10T_Arg1283264ItemTypeInputbErrorBOOL error, FALSE => no error ]]>83392ItemTypeOutputnErrIdUDINT323424ItemTypeOutputsOutT_MaxString20483456ItemTypeOutputpFormatBYTE6455040conditionalshowpOutBYTE6455680conditionalshowiRemOutLenINT165632conditionalshowbValidBOOL85648conditionalshowstFmtST_FormatParameters1605664conditionalshownArrayElemINT165824conditionalshownArgumentUDINT325856conditionalshowparArgsT_Arg1106405888conditionalshowsArgStrT_MaxString20486528conditionalshowPouTypeFunctionBlockconditionalshow_all_localsFB_TestUINT16PouTypeFunctionBlockFB_Test2144TestNameT_MaxString204864TestIsFailedBOOL82112TestIsFinishedBOOL82120IsFinishedBOOL8SetNameNameT_MaxString2048SetFailedIsFailedBOOL8GetNameT_MaxString2048SetFinishedBOOL8PouTypeFunctionBlockU_ExpectedOrActual2048boolExpectedOrActualBOOL80bitExpectedOrActualBIT80byteExpectedOrActualBYTE80sintExpectedOrActualSINT80usintExpectedOrActualUSINT80intExpectedOrActualINT160uintExpectedOrActualUINT160wordExpectedOrActualWORD160dwordExpectedOrActualDWORD320dateandtimeExpectedOrActualDATE_AND_TIME320dintExpectedOrActualDINT320realExpectedOrActualREAL320timeExpectedOrActualTIME320dateExpectedOrActualDATE320udintExpectedOrActualUDINT320timeofdayExpectedOrActualTIME_OF_DAY320lwordExpectedOrActualLWORD640lintExpectedOrActualLINT640ulintExpectedOrActualULINT640lrealExpectedOrActualLREAL640ltimeExpectedOrActualLTIME640wstringExpectedOrActualWSTRING(80)12960stringExpectedOrActualT_MaxString20480ST_AssertResult8192ExpectedU_ExpectedOrActual20480ActualU_ExpectedOrActual20482048MessageT_MaxString20484096TestInstancePathT_MaxString20486144ST_AssertResultInstances8256AssertResultST_AssertResult81920DetectionCountUINT168192DetectionCountThisCycleUINT168208FB_AssertResultStatic4224TestNameT_MaxString204864TestIsFinishedBOOL82112TestIsSkippedBOOL82120NumberOfAssertionsUINT162128TestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) 0 tells in which order this test will be executed/evaluated. The lower the number, the earlier it will execute. ]]>162144TestIsFailedBOOL82160AssertionMessageT_MaxString20482168AssertionTypeE_AssertionType84216GetAssertionTypeE_AssertionType8SetFailedSetNameNameT_MaxString2048GetNameT_MaxString2048SetNumberOfAssertionsNoOfAssertionsUINT16SetTestOrderOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsSkippedBOOL8GetNumberOfAssertionsUINT16SetFinishedBOOL8GetAssertionMessageT_MaxString2048SetSkippedSetAssertionMessageAssertMessageT_MaxString2048SetAssertionTypeAssertTypeE_AssertionType8IsFinishedBOOL8GetTestOrderUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsFailedBOOL8PouTypeFunctionBlockUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100TYPE_CLASS32DWORDTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38AnyType128pValueBYTE640diSizeDINT3264TypeClassTYPE_CLASS3296linkalwaysE_TypeFieldParam16INTTYPEFIELD_UNKNOWN0TYPEFIELD_B1TYPEFIELD_O2TYPEFIELD_U3TYPEFIELD_C4TYPEFIELD_F5TYPEFIELD_D6TYPEFIELD_S7TYPEFIELD_XU8TYPEFIELD_XL9TYPEFIELD_EU10TYPEFIELD_EL11ST_FormatParameters160bPercentBOOL80bFlagsBOOL88bWidthBOOL816bDotBOOL824bPrecisionBOOL832bTypeBOOL840bAlignBOOL848bSignBOOL856bNullBOOL864bBlankBOOL872bHashBOOL880iWidthINT1696iPrecisionINT16112bWidthAsteriskBOOL8128bPrecisionAsteriskBOOL8136eTypeE_TypeFieldParam16144conditionalshowFB_FormatString8576sFormatT_MaxString204864ItemTypeInputarg1T_Arg1282112ItemTypeInputarg2T_Arg1282240ItemTypeInputarg3T_Arg1282368ItemTypeInputarg4T_Arg1282496ItemTypeInputarg5T_Arg1282624ItemTypeInputarg6T_Arg1282752ItemTypeInputarg7T_Arg1282880ItemTypeInputarg8T_Arg1283008ItemTypeInputarg9T_Arg1283136ItemTypeInputarg10T_Arg1283264ItemTypeInputbErrorBOOL error, FALSE => no error ]]>83392ItemTypeOutputnErrIdUDINT323424ItemTypeOutputsOutT_MaxString20483456ItemTypeOutputpFormatBYTE6455040conditionalshowpOutBYTE6455680conditionalshowiRemOutLenINT165632conditionalshowbValidBOOL85648conditionalshowstFmtST_FormatParameters1605664conditionalshownArrayElemINT165824conditionalshownArgumentUDINT325856conditionalshowparArgsT_Arg1106405888conditionalshowsArgStrT_MaxString20486528conditionalshowPouTypeFunctionBlockconditionalshow_all_localsTypeClass16INTTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38TYPE_INTERFACE-4096U_ExpectedOrActual4096boolExpectedOrActualBOOL80bitExpectedOrActualBIT80byteExpectedOrActualBYTE80sintExpectedOrActualSINT80usintExpectedOrActualUSINT80intExpectedOrActualINT160uintExpectedOrActualUINT160wordExpectedOrActualWORD160dwordExpectedOrActualDWORD320dateandtimeExpectedOrActualDATE_AND_TIME320dintExpectedOrActualDINT320realExpectedOrActualREAL320timeExpectedOrActualTIME320dateExpectedOrActualDATE320udintExpectedOrActualUDINT320timeofdayExpectedOrActualTIME_OF_DAY320lwordExpectedOrActualLWORD640lintExpectedOrActualLINT640ulintExpectedOrActualULINT640lrealExpectedOrActualLREAL640ltimeExpectedOrActualLTIME640stringExpectedOrActualT_MaxString20480wstringExpectedOrActualWSTRING(255)40960ST_AssertResult12288ExpectedU_ExpectedOrActual40960ActualU_ExpectedOrActual40964096MessageT_MaxString20488192TestInstancePathT_MaxString204810240ST_AssertResultInstances12352AssertResultST_AssertResult122880DetectionCountUINT1612288DetectionCountThisCycleUINT1612304FB_AssertResultStatic8224448AssertResultsST_AssertResult1500409600064TotalAssertsUINT1640960640GetCurrentTaskIndexGETCURTASKINDEX2564096128AssertResultInstancesST_AssertResultInstances150041280004096384CycleCountUDINT328224384FirstCycleExecutedBOOL88224416CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16IncreaseDetectionCountThisCycleByOneExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16hasanytypeCreateAssertResultInstanceExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16hasanytypeGetDetectionCountThisCycleUINT16ExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16hasanytypeGetDetectionCountUINT16ExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16hasanytypeReportResultExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8hasanytypeAddAssertResultExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048TestInstancePathT_MaxString2048hasanytypePouTypeFunctionBlockTypeClass16INTTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38TYPE_INTERFACE-4096ST_AssertArrayResult4224ExpectedsSizeUDINT320ExpectedsTypeClassTypeClass1632ActualsSizeUDINT3264ActualsTypeClassTypeClass1696MessageT_MaxString2048112TestInstancePathT_MaxString20482160ST_AssertArrayResultInstances4256AssertArrayResultST_AssertArrayResult42240DetectionCountUINT164224DetectionCountThisCycleUINT164240FB_AssertArrayResultStatic24640448AssertResultsST_AssertResult110001228800064TotalAssertsUINT16122880640GetCurrentTaskIndexGETCURTASKINDEX25612288128AssertResultInstancesST_AssertResultInstances110001235200012288384CycleCountUDINT3224640384FirstCycleExecutedBOOL824640416CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16GetNumberOfAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfAssertsUINT16CreateAssertResultInstanceExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8AddAssertResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockST_AssertArrayResult4224ExpectedsSizeUDINT320ExpectedsTypeClassTypeClass1632ActualsSizeUDINT3264ActualsTypeClassTypeClass1696MessageT_MaxString2048112TestInstancePathT_MaxString20482160ST_AssertArrayResultInstances4256AssertArrayResultST_AssertArrayResult42240DetectionCountUINT164224DetectionCountThisCycleUINT164240FB_AssertArrayResultStatic4240448AssertArrayResultsST_AssertArrayResult1500211200064TotalArrayAssertsUINT1621120640GetCurrentTaskIndexGETCURTASKINDEX2562112128AssertArrayResultInstancesST_AssertArrayResultInstances150021280002112384CycleCountUDINT324240384FirstCycleExecutedBOOL84240416IncreaseDetectionCountThisCycleByOneExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16CreateAssertResultInstanceExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16AddAssertArrayResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockI_AssertMessageFormatter64PVOIDLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048FB_AdjustAssertFailureMessageToMax252CharLength8480448AssertArrayResultsST_AssertArrayResult11000422400064TotalArrayAssertsUINT1642240640GetCurrentTaskIndexGETCURTASKINDEX2564224128AssertArrayResultInstancesST_AssertArrayResultInstances1100042560004224384CycleCountUDINT328480384FirstCycleExecutedBOOL88480416CreateAssertResultInstanceExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8GetNumberOfArrayAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfArrayAssertsUINT16CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16AddAssertArrayResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockI_AssertMessageFormatter64PVOIDLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048FB_AdjustAssertFailureMessageToMax253CharLength11616MsgFmtStringT_MaxString204864ItemTypeInputStringArgT_MaxString20482112ItemTypeInputMsgFmtStringProcessedT_MaxString20484160ItemTypeOutputStringArgProcessedT_MaxString20486208ItemTypeOutputMsgFmtStringTempT_MaxString20488256TestNameTooLongSTRING(80)64810304...TestName too longTestMsgTooLongSTRING(80)64810952...TestMsg too longMSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERSINT1611600252PouTypeFunctionBlockFB_ADSAssertMessageFormatter11616MsgFmtStringT_MaxString204864ItemTypeInputStringArgT_MaxString20482112ItemTypeInputMsgFmtStringProcessedT_MaxString20484160ItemTypeOutputStringArgProcessedT_MaxString20486208ItemTypeOutputMsgFmtStringTempT_MaxString20488256TestNameTooLongSTRING(80)64810304...TestName too longTestMsgTooLongSTRING(80)64810952...TestMsg too longMSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERSINT1611600253PouTypeFunctionBlockFB_AdsAssertMessageFormatter128I_AssertMessageFormatterLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AdjustAssertFailureMessageToMax252CharLengthFB_AdjustAssertFailureMessageToMax252CharLength11616TestInstancePathCleanedT_MaxString2048TestInstancePathFinalT_MaxString2048ReturnValueDINT32TestInstancePathProcessedT_MaxString2048MessageProcessedT_MaxString2048PouTypeFunctionBlockFB_TestSuite128I_AssertMessageFormatterLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AdjustAssertFailureMessageToMax253CharLengthFB_AdjustAssertFailureMessageToMax253CharLength11616TestInstancePathCleanedT_MaxString2048TestInstancePathFinalT_MaxString2048ReturnValueDINT32TestInstancePathProcessedT_MaxString2048MessageProcessedT_MaxString2048PouTypeFunctionBlockFB_TestSuite12694720InstancePathT_MaxString204864instance-pathnoinitGetCurrentTaskIndexGETCURTASKINDEX33558784InstancePathT_MaxString204864instance-pathnoinitGetCurrentTaskIndexGETCURTASKINDEX2562112NumberOfTestsUINT1623680TestsFB_Test11002144002432TestDuplicateNameTriggerR_TRIG11009600216832TestCycleCountIndexUDINT11003200226432AssertResultsFB_AssertResultStatic8224448229632AssertArrayResultFB_AssertArrayResultStatic42404488454080ADSAssertMessageFormatterFB_ADSAssertMessageFormatter12812694528AssertMessageFormatterI_AssertMessageFormatter6412694656AssertArrayEquals_REALExpectedsREAL64variable_length_arrayDimensions1ActualsREAL64variable_length_arrayDimensions1DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_BOOLExpectedBOOL8ActualBOOL8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertArrayEquals_WORDExpectedsWORD64variable_length_arrayDimensions1ActualsWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_STRINGExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_ULINTExpectedULINT64ActualULINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_USINTExpectedsUSINT64variable_length_arrayDimensions1ActualsUSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32GetNumberOfSuccessfulTestsUINT16AssertArrayEquals_BYTEExpectedsBYTE64variable_length_arrayDimensions1ActualsBYTE64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedByteStringSTRING(80)648ActualByteStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32SetTestFailedIteratorCounterUINT16AssertEquals_WORDExpectedWORD16ActualWORD16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_ULINTExpectedsULINT64variable_length_arrayDimensions1ActualsULINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32IsTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16AssertEquals_LINTExpectedLINT64ActualLINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEqualsExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048CountDINT32ExpectedDataStringSTRING(80)648ActualDataStringSTRING(80)648TestInstancePathT_MaxString2048AlreadyReportedBOOL8AnyComparatorFB_AnyComparator384boolExpectedBOOL8boolActualBOOL8byteExpectedBYTE8byteActualBYTE8dateExpectedDATE32dateActualDATE32dateAndTimeExpectedDATE_AND_TIME32dateAndTimeActualDATE_AND_TIME32dintExpectedDINT32dintActualDINT32dwordExpectedDWORD32dwordActualDWORD32intExpectedINT16intActualINT16lintExpectedLINT64lintActualLINT64lrealExpectedLREAL64lrealActualLREAL64ltimeExpectedLTIME64ltimeActualLTIME64lwordExpectedLWORD64lwordActualLWORD64realExpectedREAL32realActualREAL32sintExpectedSINT8sintActualSINT8stringExpectedT_MaxString2048stringActualT_MaxString2048timeExpectedTIME32timeActualTIME32timeOfDayExpectedTIME_OF_DAY32timeOfDayActualTIME_OF_DAY32udintExpectedUDINT32udintActualUDINT32uintExpectedUINT16uintActualUINT16ulintExpectedULINT64ulintActualULINT64usintExpectedUSINT8usintActualUSINT8wordExpectedWORD16wordActualWORD16hasanytypeAssertEquals_TIME_OF_DAYExpectedTIME_OF_DAY32ActualTIME_OF_DAY32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_USINTExpectedUSINT8ActualUSINT8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertArrayEquals_DINTExpectedsDINT64variable_length_arrayDimensions1ActualsDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_SINTExpectedSINT8ActualSINT8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfTestsUINT16AssertEquals_LREALExpectedLREAL64ActualLREAL64DeltaLREAL64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_REALExpectedsREAL64variable_length_arrayDimensions2ActualsREAL64variable_length_arrayDimensions2DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedREAL32ActualREAL32__Index__0DINT32AddTestNameToInstancePathT_MaxString2048TestInstancePathT_MaxString2048CompleteTestInstancePathT_MaxString2048AssertTrueConditionBOOL8MessageT_MaxString2048AssertArray3dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions3ActualsLREAL64variable_length_arrayDimensions3DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertEquals_INTExpectedINT16ActualINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_DATEExpectedDATE32ActualDATE32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_DWORDExpectedDWORD32ActualDWORD32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_REALExpectedREAL32ActualREAL32DeltaREAL32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_UDINTExpectedUDINT32ActualUDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_LTIMEExpectedLTIME64ActualLTIME64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_SINTExpectedsSINT64variable_length_arrayDimensions1ActualsSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_TIMEExpectedTIME32ActualTIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_DATE_AND_TIMEExpectedDATE_AND_TIME32ActualDATE_AND_TIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray3dEquals_REALExpectedsREAL64variable_length_arrayDimensions3ActualsREAL64variable_length_arrayDimensions3DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedREAL32ActualREAL32ExpectedValueStringT_MaxString2048ActualValueStringT_MaxString2048FormatStringFB_FormatString8576__Index__0DINT32AssertEquals_DINTExpectedDINT32ActualDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_UDINTExpectedsUDINT64variable_length_arrayDimensions1ActualsUDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_INTExpectedsINT64variable_length_arrayDimensions1ActualsINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertFalseConditionBOOL8MessageT_MaxString2048GetNumberOfFailedTestsUINT16CounterUINT16FailedTestsCountUINT16AssertArrayEquals_LINTExpectedsLINT64variable_length_arrayDimensions1ActualsLINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_LWORDExpectedsLWORD64variable_length_arrayDimensions1ActualsLWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_LWORDExpectedLWORD64ActualLWORD64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions2ActualsLREAL64variable_length_arrayDimensions2DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertArrayEquals_BOOLExpectedsBOOL64variable_length_arrayDimensions1ActualsBOOL64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AreAllTestsFinishedBOOL8CounterUINT16GetCurTaskIndexGETCURTASKINDEX256AddTestTestNameT_MaxString2048IteratorCounterUINT16ErrorMessageT_MaxString2048TestInstancePathT_MaxString2048FunctionCallResultDINT32CycleCountUDINT32TestWithThisNameAlreadyExistsBOOL8LowerCasedTestNameT_MaxString2048TrimmedTestNameT_MaxString2048AssertArrayEquals_DWORDExpectedsDWORD64variable_length_arrayDimensions1ActualsDWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32FindTestSuiteInstancePathT_MaxString2048AssertEquals_BYTEExpectedBYTE8ActualBYTE8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_UINTExpectedUINT16ActualUINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetInstancePathT_MaxString2048SetTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16AssertArrayEquals_UINTExpectedsUINT64variable_length_arrayDimensions1ActualsUINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_LREALExpectedsLREAL64variable_length_arrayDimensions1ActualsLREAL64variable_length_arrayDimensions1DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringSTRING(80)648ActualStringSTRING(80)648AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32PouTypeFunctionBlockcall_after_initreflectionST_ADSLogStringMessage4096MsgFmtStrT_MaxString20480StrArgT_MaxString20482048pack_mode1FB_MemRingBuffer2562112NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1623680TestsFB_Test11004224002432TestDuplicateNameTriggerR_TRIG11009600424832TestCycleCountIndexUDINT11003200434432AssertResultsFB_AssertResultStatic24640448437632AssertArrayResultsFB_AssertArrayResultStatic848044825078080AdsAssertMessageFormatterFB_AdsAssertMessageFormatter12833558528AssertMessageFormatterI_AssertMessageFormatter6433558656HasStartedRunningBOOL833558720NumberOfOrderedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1633558736AssertEquals_LINTExpectedLINT64ActualLINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfSuccessfulTestsUINT16AssertArrayEquals_ULINTExpectedsULINT64variable_length_arrayDimensions1ActualsULINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32FindTestSuiteInstancePathT_MaxString2048AssertEquals_TIMEExpectedTIME32ActualTIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_TIME_OF_DAYExpectedTIME_OF_DAY32ActualTIME_OF_DAY32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BYTEExpectedBYTE8ActualBYTE8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfFailedTestsUINT16CounterUINT16FailedTestsCountUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16NumberOfTestOverArrayLimitUINT16AssertEquals_DATE_AND_TIMEExpectedDATE_AND_TIME32ActualDATE_AND_TIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetTestByPositionFB_Test4224PositionUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_BOOLExpectedsBOOL64variable_length_arrayDimensions1ActualsBOOL64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_BYTEExpectedsBYTE64variable_length_arrayDimensions1ActualsBYTE64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedByteStringSTRING(80)648ActualByteStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_DATEExpectedDATE32ActualDATE32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_WORDExpectedWORD16ActualWORD16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LINTExpectedsLINT64variable_length_arrayDimensions1ActualsLINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_LTIMEExpectedLTIME64ActualLTIME64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_UINTExpectedsUINT64variable_length_arrayDimensions1ActualsUINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_LREALExpectedLREAL64ActualLREAL64DeltaLREAL64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LWORDExpectedsLWORD64variable_length_arrayDimensions1ActualsLWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedLWordStringSTRING(80)648ActualLWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEqualsExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048CountDINT32ExpectedDataStringT_MaxString2048ActualDataStringT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8boolExpectedBOOL8boolActualBOOL8byteExpectedBYTE8byteActualBYTE8dateExpectedDATE32dateActualDATE32dateAndTimeExpectedDATE_AND_TIME32dateAndTimeActualDATE_AND_TIME32dintExpectedDINT32dintActualDINT32dwordExpectedDWORD32dwordActualDWORD32intExpectedINT16intActualINT16lintExpectedLINT64lintActualLINT64lrealExpectedLREAL64lrealActualLREAL64ltimeExpectedLTIME64ltimeActualLTIME64lwordExpectedLWORD64lwordActualLWORD64realExpectedREAL32realActualREAL32sintExpectedSINT8sintActualSINT8stringExpectedT_MaxString2048stringActualT_MaxString2048wstringExpectedWSTRING(255)4096wstringActualWSTRING(255)4096timeExpectedTIME32timeActualTIME32timeOfDayExpectedTIME_OF_DAY32timeOfDayActualTIME_OF_DAY32udintExpectedUDINT32udintActualUDINT32uintExpectedUINT16uintActualUINT16ulintExpectedULINT64ulintActualULINT64usintExpectedUSINT8usintActualUSINT8wordExpectedWORD16wordActualWORD16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8IteratorCounterDINT32hasanytypeAssertFalseConditionBOOL8MessageT_MaxString2048AssertEquals_SINTExpectedSINT8ActualSINT8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions2ActualsLREAL64variable_length_arrayDimensions2DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertEquals_ULINTExpectedULINT64ActualULINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BOOLExpectedBOOL8ActualBOOL8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_USINTExpectedUSINT8ActualUSINT8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_LWORDExpectedLWORD64ActualLWORD64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_USINTExpectedsUSINT64variable_length_arrayDimensions1ActualsUSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32SetHasStartedRunningSetTestFailedAssertionTypeE_AssertionType8AssertionMessageT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16GetInstancePathT_MaxString2048GetTestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16GetNumberOfTestsUINT16AssertArrayEquals_DWORDExpectedsDWORD64variable_length_arrayDimensions1ActualsDWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32GetHasStartedRunningBOOL8AssertArrayEquals_LREALExpectedsLREAL64variable_length_arrayDimensions1ActualsLREAL64variable_length_arrayDimensions1DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_WSTRINGExpectedWSTRING(255)4096ActualWSTRING(255)4096MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8IsTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_REALExpectedsREAL64variable_length_arrayDimensions1ActualsREAL64variable_length_arrayDimensions1DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_DINTExpectedDINT32ActualDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_DINTExpectedsDINT64variable_length_arrayDimensions1ActualsDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_STRINGExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8SetTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AreAllTestsFinishedBOOL8CounterUINT16GetCurTaskIndexGETCURTASKINDEX256NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArrayEquals_WORDExpectedsWORD64variable_length_arrayDimensions1ActualsWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArray3dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions3ActualsLREAL64variable_length_arrayDimensions3DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertArrayEquals_INTExpectedsINT64variable_length_arrayDimensions1ActualsINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32CalculateAndSetNumberOfAssertsForTestTestNameT_MaxString2048TestInstancePathT_MaxString2048TotalNumberOfAssertsUINT16NumberOfAssertsUINT16NumberOfArrayAssertsUINT16IteratorCounterUINT16GetNumberOfSkippedTestsUINT16CounterUINT16SkippedTestsCountUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertEquals_DWORDExpectedDWORD32ActualDWORD32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertTrueConditionBOOL8MessageT_MaxString2048AssertEquals_INTExpectedINT16ActualINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_UINTExpectedUINT16ActualUINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_REALExpectedsREAL64variable_length_arrayDimensions2ActualsREAL64variable_length_arrayDimensions2DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedREAL32ActualREAL32__Index__0DINT32AddTestTestNameT_MaxString2048IsTestOrderedBOOL8IteratorCounterUINT16ErrorMessageT_MaxString2048TestInstancePathT_MaxString2048FunctionCallResultDINT32CycleCountUDINT32TestWithThisNameAlreadyExistsBOOL8LowerCasedTestNameT_MaxString2048TrimmedTestNameT_MaxString2048IgnoreCurrentTestCaseBOOL8NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArray3dEquals_REALExpectedsREAL64variable_length_arrayDimensions3ActualsREAL64variable_length_arrayDimensions3DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedREAL32ActualREAL32ExpectedValueStringT_MaxString2048ActualValueStringT_MaxString2048FormatStringFB_FormatString8576__Index__0DINT32AddTestNameToInstancePathT_MaxString2048TestInstancePathT_MaxString2048CompleteTestInstancePathT_MaxString2048AssertEquals_UDINTExpectedUDINT32ActualUDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_REALExpectedREAL32ActualREAL32DeltaREAL32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_SINTExpectedsSINT64variable_length_arrayDimensions1ActualsSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_UDINTExpectedsUDINT64variable_length_arrayDimensions1ActualsUDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32PouTypeFunctionBlockcall_after_initreflectionST_AdsLogStringMessage4128MsgCtrlMaskDWORD320MsgFmtStrT_MaxString204832StrArgT_MaxString20482080pack_mode1FB_MemRingBuffer768pWriteBYTE6464ItemTypeInputcbWriteUDINT32128ItemTypeInputpReadBYTE64192ItemTypeInputcbReadUDINT32256ItemTypeInputpBufferBYTE64320ItemTypeInputcbBufferUDINT32384ItemTypeInputbOkBOOL8416ItemTypeOutputnCountUDINT324480ItemTypeOutputcbSizeUDINT324800ItemTypeOutputcbReturnUDINT Number of recend realy returned (removed or get) data bytes - If bOk == FALSE and cbReturn <> 0 => Number of required read buffer data bytes (cbRead underflow) ]]>325120ItemTypeOutputidxLastDWORD325440conditionalshowidxFirstDWORD325760conditionalshowidxGetDWORD32608conditionalshowpTmpBYTE64640conditionalshowcbTmpDWORD32704conditionalshowcbCopiedDWORD32736conditionalshowA_ResetA_AddTailA_RemoveHeadA_GetHeadPouTypeFunctionBlockconditionalshow_all_localsFB_ADSLogStringMessageFifoQueue 0 => Number of required read buffer data bytes (cbRead underflow) ]]>325120ItemTypeOutputidxLastDWORD325440conditionalshowidxFirstDWORD325760conditionalshowidxGetDWORD32608conditionalshowpTmpBYTE64640conditionalshowcbTmpDWORD32704conditionalshowcbCopiedDWORD32736conditionalshowA_ResetA_AddTailA_RemoveHeadA_GetHeadPouTypeFunctionBlockconditionalshow_all_localsTON256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockFB_AdsLogStringMessageFifoQueue4129152ArrayBufferBYTE0516000412800064MemRingBufferFB_MemRingBuffer7684128064TimerBetweenMessagesTON2564128832.IN1.PT50RING_BUFFER_SIZEUINT1641290881000MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT841291044TIME_BETWEEN_MESSAGESTIME32412912050GetLogCountUDINT32WriteLogMsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_ADSLogStringMessage4096GetLogAdsLogStringMessageST_ADSLogStringMessage4096ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_PMPS_Attenuator_IO32nTranUINT160xAttOKUINT1616ST_PMPS_Attenuator32ST_PMPS_Attenuator_IOST_PMPS_Aperture_IO96WidthREAL320plcAttribute_pytmcpv: Width +]]>8321152ArrayBufferBYTE01040000832000064MemRingBufferFB_MemRingBuffer7688320064TimerBetweenMessagesTON2568320832.IN1.PT10MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT883210884TIME_BETWEEN_MESSAGESTIME32832112010GetLogCountUDINT32WriteLogMsgCtrlMaskDWORD32MsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_AdsLogStringMessage4128GetAndRemoveLogFromQueueAdsLogStringMessageST_AdsLogStringMessage4128ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_PMPS_Attenuator_IO64nTranREAL320xAttOKUINT1632ST_PMPS_Attenuator64ST_PMPS_Attenuator_IOST_PMPS_Aperture_IO96WidthREAL320plcAttribute_pytmcpv: Width io: i field: EGU mmHeightREAL3232plcAttribute_pytmcpv: Height io: i field: EGU mmxOKBOOL864plcAttribute_pytmcpv: OK - io: iST_PMPS_Aperture96ST_PMPS_Aperture_IOST_BeamParams1216nTranUINT160100pytmcpv: Transmission + io: iST_PMPS_Aperture96ST_PMPS_Aperture_IOST_BeamParams1760nTranREAL3200pytmcpv: Transmission io: i - field: EGU % - nRateUDINT3232120pytmcpv: Rate + field: HOPR 1; + field: LOPR 0; + field: PREC 2; + nRateUDINT32320pytmcpv: Rate io: i field: EGU Hz - fPP_mJREAL326420pytmcpv: PulseEnergy + neVRangeDWORD32640pytmcpv: eVRanges io: i - field: EGU mJ - field: DESC This beam parameter is non-op for now. - neVRangeWORD169665535pytmcpv: PhotonEnergyRanges + field: EGU eVdisplaymodebinaryneVREAL32960pytmcpv: PhotonEnergy io: i - field: EGU eVdisplaymodebinaryastAttenuatorsST_PMPS_Attenuator116512112pytmcpv: AuxAtt - io: iaStoppersBOOL116128624pytmcpv: ST - io: iastAperturesST_PMPS_Aperture14384768[1].Width1000[1].Height1000[2].Width1000[2].Height1000[3].Width1000[3].Height1000[4].Width1000[4].Height1000xValidToggleBOOL81152xValidBOOL81160pytmcpv: Valid - io: inCohortIntUDINT321184pytmcpv: Cohort + field: EGU eVnBCRangeWORD161280pytmcpv: BeamClassRanges + io: idisplaymodebinarynBeamClassUSINT81440pytmcpv: BeamClass + io: inMachineModeUSINT81523pytmcpv: MachineMode + io: iastAttenuatorsST_PMPS_Attenuator1161024160pytmcpv: AuxAtt + io: iaVetoDevicesBOOL1161281184pytmcpv: Veto + io: iastAperturesST_PMPS_Aperture143841312[1].Width1000[1].Height1000[2].Width1000[2].Height1000[3].Width1000[3].Height1000[4].Width1000[4].Height1000pytmcpv: Apt + io: ixValidToggleBOOL81696xValidBOOL81704pytmcpv: Valid + io: inCohortIntUDINT321728pytmcpv: Cohort io: i field: DESC Cohort inc on each arb cycle PE_Ranges384initStatusHRESULT3264ItemTypeOutputipWriterITcJsonSaxWriter64128ipWriter2ITcJsonSaxWriter264192CLSID_TcJsonSaxWriterCLSID128256.Data13870298264.Data256256.Data317669.Data4[0]158.Data4[1]60.Data4[2]93.Data4[3]248.Data4[4]70.Data4[5]150.Data4[6]7.Data4[7]196AddKeyNumberkeySTRING(80)64ItemTypeInOutvalueDINT32AddStringvalueSTRING(80)64ItemTypeInOutAddKeyFileTimekeySTRING(80)64ItemTypeInOutvalueFILETIME64IsCompleteBOOL8AddUdintvalueUDINT32AddHexBinarypBytesBYTE64nBytesDINT32AddLintvalueLINT64AddLrealvalueLREAL64AddKeykeySTRING(80)64ItemTypeInOutResetDocumentAddKeyLrealkeySTRING(80)64ItemTypeInOutvalueLREAL64StartObjectGetDocumentLengthUDINT32nUDINT32pSTRING(80)64AddKeyDcTimekeySTRING(80)64ItemTypeInOutvalueDCTIME64AddDateTimevalueDATE_AND_TIME32AddRawObjectrawJsonSTRING(80)64ItemTypeInOutSetMaxDecimalPlacesdecimalPlacesDINT32__get_ipWriterITcJsonSaxWriter64_ipWriterITcJsonSaxWriter64propertyAddKeyBoolkeySTRING(80)64ItemTypeInOutvalueBOOL8GetDocumentSTRING(255)2048pSINT64nUDINT32AddDintvalueDINT32AddRawArrayBOOL8rawJsonSTRING(80)64ItemTypeInOutAddKeyStringkeySTRING(80)64ItemTypeInOutvalueSTRING(80)64ItemTypeInOutCopyDocumentUDINT32pDocSTRING(80)64ItemTypeInOutnDocUDINT32AddUlintvalueULINT64GetMaxDecimalPlacesDINT32dpDINT32AddFileTimevalueFILETIME64AddNullAddKeyDateTimekeySTRING(80)64ItemTypeInOutvalueDATE_AND_TIME32AddBoolvalueBOOL8AddBase64pBytesBYTE64nBytesDINT32AddDcTimevalueDCTIME64AddKeyNullkeySTRING(80)64ItemTypeInOutEndArrayEndObjectStartArrayAddRealvalueREAL32PouTypeFunctionBlockno_explicit_calldo not call this POU directly_ST_NCADS_IDXOFFS_AxisParameter1632PARAMSTRUCTUDINT3200IDUDINT32321NAMEUDINT32642AXISTYPEUDINT32963CYCLETIMEUDINT321284UNITNAMEUDINT321605VELOREFSEARCHUDINT321926VELOSYNCSEARCHUDINT322247VELOSLOWMANUALUDINT322568VELOFASTMANUALUDINT322889VELOFASTUDINT3232010POSAREAENABLEUDINT3235215POSAREARANGEUDINT3238416MOTCNTRLENABLEUDINT3241617MOTCNTRLTIMEUDINT3244818LOOPENABLEUDINT3248019LOOPDISTANCEUDINT3251220TARGETPOSENAUDINT3254421TARGETPOSRANGEUDINT3257622TARGETPOSTIMEUDINT3260823PULSDISTPOSUDINT3264024PULSDISTNEGUDINT3267225FADINGACCELERATIONUDINT3270429FASTAXISSTOPSIGNALTYPEUDINT3273630UNITFLAGSUDINT3276838VELOMAXIMUMUDINT3280039MOTCNTRLRANGEUDINT3283240PEHCONTROLENAUDINT3286441PEHCONTROLTIMEUDINT3289642BACKLASHCOMPENAUDINT3292843BACKLASHUDINT3296044DATAPERSISTENCEUDINT3299248HWAMSADDRUDINT32102449HWCHNNOUDINT32105650APPLICATIONREQUESTUDINT32108851ACCUDINT321120257DECUDINT321152258JERKUDINT321184259DELAYUDINT321216260OVERRIDETYPEUDINT321248261VELOJUMPFACTORUDINT321280262REDUCTIONFEEDBACKUDINT321312263TOLERANCEBALLAUXAXISUDINT321344264MAXPOSDEVIATIONAUXAXISUDINT321376265FASTACCUDINT321408266FASTDECUDINT321440267FASTJERKUDINT321472268REF_POSUDINT32150465795ENCSEARCHDIRUDINT32153665793ENCSYNCDIRUDINT32156865794ENCREFMODEUDINT32160065799conditionalshow_ST_NCADS_AxisParameter1664IDXGRPUDINT32016384IDXOFFS_ST_NCADS_IDXOFFS_AxisParameter163232conditionalshow_ST_NCADS_IDXOFFS_AxisState800ONLINESTRUCTUDINT3200ERRORUDINT32321SETTASKCYCLEUDINT384initStatusHRESULT3264-1743714536ItemTypeOutputipWriterITcJsonSaxWriter64128ipWriter2ITcJsonSaxWriter264192CLSID_TcJsonSaxWriterCLSID128256.Data13870298264.Data256256.Data317669.Data4[0]158.Data4[1]60.Data4[2]93.Data4[3]248.Data4[4]70.Data4[5]150.Data4[6]7.Data4[7]196AddKeyNumberkeySTRING(80)64ItemTypeInOutvalueDINT32AddStringvalueSTRING(80)64ItemTypeInOutAddKeyFileTimekeySTRING(80)64ItemTypeInOutvalueFILETIME64IsCompleteBOOL8AddUdintvalueUDINT32AddHexBinarypBytesBYTE64nBytesDINT32AddLintvalueLINT64AddLrealvalueLREAL64AddKeykeySTRING(80)64ItemTypeInOutResetDocumentHRESULT32AddKeyLrealkeySTRING(80)64ItemTypeInOutvalueLREAL64StartObjectHRESULT32GetDocumentLengthUDINT32hrErrorCodeHRESULT32ItemTypeOutputnUDINT32pSTRING(80)64AddKeyDcTimekeySTRING(80)64ItemTypeInOutvalueDCTIME64AddDateTimevalueDATE_AND_TIME32AddRawObjectrawJsonSTRING(80)64ItemTypeInOutSetMaxDecimalPlacesHRESULT32decimalPlacesDINT32__get_ipWriterITcJsonSaxWriter64_ipWriterITcJsonSaxWriter64propertyAddKeyBoolkeySTRING(80)64ItemTypeInOutvalueBOOL8GetDocumentSTRING(255)2048hrErrorCodeHRESULT32ItemTypeOutputpSINT64nUDINT32AddDintvalueDINT32AddRawArrayBOOL8rawJsonSTRING(80)64ItemTypeInOutAddKeyStringkeySTRING(80)64ItemTypeInOutvalueSTRING(80)64ItemTypeInOutCopyDocumentUDINT32pDocSTRING(80)64ItemTypeInOutnDocUDINT32hrErrorCodeHRESULT32ItemTypeOutputAddUlintvalueULINT64GetMaxDecimalPlacesDINT32dpDINT32AddFileTimevalueFILETIME64AddNullAddKeyDateTimekeySTRING(80)64ItemTypeInOutvalueDATE_AND_TIME32AddBoolvalueBOOL8AddBase64pBytesBYTE64nBytesDINT32AddDcTimevalueDCTIME64AddKeyNullkeySTRING(80)64ItemTypeInOutEndArrayHRESULT32EndObjectHRESULT32StartArrayHRESULT32AddRealvalueREAL32PouTypeFunctionBlockno_explicit_calldo not call this POU directly_ST_NCADS_IDXOFFS_AxisParameter1632PARAMSTRUCTUDINT3200IDUDINT32321NAMEUDINT32642AXISTYPEUDINT32963CYCLETIMEUDINT321284UNITNAMEUDINT321605VELOREFSEARCHUDINT321926VELOSYNCSEARCHUDINT322247VELOSLOWMANUALUDINT322568VELOFASTMANUALUDINT322889VELOFASTUDINT3232010POSAREAENABLEUDINT3235215POSAREARANGEUDINT3238416MOTCNTRLENABLEUDINT3241617MOTCNTRLTIMEUDINT3244818LOOPENABLEUDINT3248019LOOPDISTANCEUDINT3251220TARGETPOSENAUDINT3254421TARGETPOSRANGEUDINT3257622TARGETPOSTIMEUDINT3260823PULSDISTPOSUDINT3264024PULSDISTNEGUDINT3267225FADINGACCELERATIONUDINT3270429FASTAXISSTOPSIGNALTYPEUDINT3273630UNITFLAGSUDINT3276838VELOMAXIMUMUDINT3280039MOTCNTRLRANGEUDINT3283240PEHCONTROLENAUDINT3286441PEHCONTROLTIMEUDINT3289642BACKLASHCOMPENAUDINT3292843BACKLASHUDINT3296044DATAPERSISTENCEUDINT3299248HWAMSADDRUDINT32102449HWCHNNOUDINT32105650APPLICATIONREQUESTUDINT32108851ACCUDINT321120257DECUDINT321152258JERKUDINT321184259DELAYUDINT321216260OVERRIDETYPEUDINT321248261VELOJUMPFACTORUDINT321280262REDUCTIONFEEDBACKUDINT321312263TOLERANCEBALLAUXAXISUDINT321344264MAXPOSDEVIATIONAUXAXISUDINT321376265FASTACCUDINT321408266FASTDECUDINT321440267FASTJERKUDINT321472268REF_POSUDINT32150465795ENCSEARCHDIRUDINT32153665793ENCSYNCDIRUDINT32156865794ENCREFMODEUDINT32160065799conditionalshow_ST_NCADS_AxisParameter1664IDXGRPUDINT32016384IDXOFFS_ST_NCADS_IDXOFFS_AxisParameter163232conditionalshow_ST_NCADS_IDXOFFS_AxisState800ONLINESTRUCTUDINT3200ERRORUDINT32321SETTASKCYCLEUDINT32649SETPOSUDINT329610SETVELOUDINT3212814SETACCUDINT3216015MODULOSETPOSUDINT3219211MODULOSETTURNSUDINT3222412SETDIRUDINT3225613TARGETPOSITIONUDINT3228819REMAININGTIMEANDPOSUDINT3232020STOPINFORMATIONUDINT3235224SETTASKCYCLE_WITHOUTCORRUDINT3238425SETPOS_WITHOUTCORRUDINT3241626SETVELO_WITHOUTCORRUDINT3244830SETACC_WITHOUTCORRUDINT3248031SETDIR_WITHOUTCORRUDINT3251229COUPLESTATEUDINT3254432CPLPARAMSUDINT3257634CPLFACTORUDINT3260835AXISCTRLLOOPIDXUDINT3264036AXISSETPOINTGENIDXUDINT3267237CPLCHARACVALUESUDINT3270438CAMINFOUDINT3273639CAMSTATUSUDINT3276840conditionalshow_ST_NCADS_AxisState832IDXGRPUDINT32016640IDXOFFS_ST_NCADS_IDXOFFS_AxisState80032conditionalshow_ST_NCADS_IDXOFFS_AxisFunctions1792RESETUDINT3201STOPUDINT32322CLEARUDINT32643EMERGENCYSTOPUDINT32964PARAMETRIZEDSTOPUDINT321285INITIALIZEUDINT321607ORIENTEDSTOPUDINT321929CALIBRUDINT3222416NEWTARGPOSUDINT3225617NEWTARGPOSANDVELOUDINT3228818CHANGEDYNAMICPARAMUDINT3232021UNIVERSALSTARTUDINT3235222SLAVEUNIVERSALSTARTUDINT3238423RELEASEAXISLOCKUDINT3241624SETEXTERNALERRORUDINT3244825SETPOSUDINT3248026SETCALFLAGUDINT3251227SETACTPOSUDINT3254428SETDRIVEPOSUDINT3257629SETENCODERSCALINGUDINT3260830SETPOSONTHEFLYUDINT3264031STARTUDINT3267232STARTEXTUDINT3270433STARTVELOCHANGEUDINT3273634ENABLEEXTGENUDINT3276835DISABLEEXTGENUDINT3280036REVERSINGSEQUENCEUDINT3283237STARTDRVOUTUDINT3286438STOPDRVOUTUDINT3289639CHANGEDRVOUTUDINT3292840JUMPTOOVERRIDEUDINT3296041EXTSETGENUNIVERSALSTARTUDINT3299243UNIVERSALTORQUESTARTUDINT32102445STARTSCOMUDINT32105648STOPSCOMUDINT32108849PHASINGREQEUSTUDINT32112052CPLUDINT32115264DECPLUDINT32118465CPLCHANGEUDINT32121666TABCPLCHANGEUDINT32124867STOPSLAVEUDINT32128068CPLTABUDINT32131269TABSLVACTIVCORUDINT32134470TABSLVLEAVECYCUDINT32137671TABSLVCOROFFSETUDINT32140872TABSLVSCALINGUDINT32144073CPLSOLOTABUDINT32147274CPLSYNCHRONIZINGUDINT32150475CAMSCALINGUDINT32153677DISABLEUDINT32156880ENABLEUDINT32160081CHANGEAXISCTRLLOOPUDINT32163282DRIVEDISABLEUDINT32166496DRIVEENABLEUDINT32169697RELEASEBRAKEUDINT32172898RECONFIGURATEUDINT321760112conditionalshow_ST_NCADS_AxisFunctions1824IDXGRPUDINT32016896IDXOFFS_ST_NCADS_IDXOFFS_AxisFunctions179232conditionalshow_ST_NCADS_Axis4320Parameter_ST_NCADS_AxisParameter16640State_ST_NCADS_AxisState8321664Functions_ST_NCADS_AxisFunctions18242496conditionalshow_ST_NCADS_IDXOFFS_TableParameter192MFREADCHARACVALUESUDINT32080WRITETABROWSUDINT323216777216WRITEMFTABROWSUDINT326483886080MFREADTABUDINT329634READSLAVEDYNAMICSUDINT3212835READMASTERPOSITIONUDINT3216036conditionalshow_ST_NCADS_TableParameter224IDXGRPUDINT32040960IDXOFFS_ST_NCADS_IDXOFFS_TableParameter19232conditionalshow_ST_NCADS_IDXOFFS_TableFunctions96CREATETABUDINT32065536CREATEMOTIONTABUDINT323265552DELETETABUDINT3264131072hide_ST_NCADS_TableFunctions128IDXGRPUDINT32041472IDXOFFS_ST_NCADS_IDXOFFS_TableFunctions9632conditionalshow_ST_NCADS_Table352Parameter_ST_NCADS_TableParameter2240Functions_ST_NCADS_TableFunctions128224conditionalshowT_AmsPort16UINTADSRDDEVINFO1344NETIDT_AmsNetID19264ItemTypeInputPORTT_AmsPort16256ItemTypeInputRDINFOBOOL8272ItemTypeInputTMOUTTIME322885000ItemTypeInputBUSYBOOL8320ItemTypeOutputERRBOOL8328ItemTypeOutputERRIDUDINT32352ItemTypeOutputDEVNAMESTRING(19)160384ItemTypeOutputDEVVERUDINT32544ItemTypeOutputPouTypeFunctionBlockhide_all_locals_TCMCGLOBAL7104NCPORT_TCMCUINT1664500ItemTypeInputNCPORT_TCMC_COUPLINGUINT1680500ItemTypeInputNCNETID_TCMCT_AmsNetID19296ItemTypeInputNCPORT_TCMC_CAMUINT16288500ItemTypeInputNCPORT_TCMC_CAM_FASTUINT16304500ItemTypeInputNCNETID_TCMC_CAMT_AmsNetID192320ItemTypeInputNCPORT_TCMC_SUPERPOSITIONUINT16512501ItemTypeInputNcDeviceInfoTcMainVersionDWORD32544ItemTypeOutputNcDeviceInfoTcSubVersionDWORD32576ItemTypeOutputNcDeviceInfoNcDriverVersionDWORD32608ItemTypeOutputNcDeviceInfoNcVersionDWORD32640ItemTypeOutputNcDeviceInfoNcNameSTRING(19)160672ItemTypeOutputAxis_ST_NCADS_Axis4320832ItemTypeOutputsuppress_warning_0C0228Table_ST_NCADS_Table3525152ItemTypeOutputsuppress_warning_0C0228NCPORT_TCNCCAMMING_TABLEFUNCTIONUINT165504500tTargetPosTimeOutTIME3255366000tADSTimeOutTIME3255681000tStopMonitoringTimeOutTIME325600100NCTOPLC_FEEDBACK_MAXWAITCYCLESINT16563210fbADSRDDEVINFOADSRDDEVINFO13445696DeviceVersionDWORD327040InitBOOL87072ReadDeviceInfoPouTypeFunctionBlockhideVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcLicenseInfo1024LicenseIdGUID1280InstancesUDINT32128LicenseNameSTRING(95)768256PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024PlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512LCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseLCLSVacuumSerialDriverLib{08500001-0000-0000-F000-000000000064}{bca6ee0a-9ce1-4d3f-98ca-413abc0d94fd}TF6340 TC3 Serial-CommunicationLCLSGeneralEventClassApplicationNamePort_851ChangeDate2020-11-17T18:06:51GeneratedCodeSize425984GlobalDataSize589824 \ No newline at end of file +]]>32649SETPOSUDINT329610SETVELOUDINT3212814SETACCUDINT3216015MODULOSETPOSUDINT3219211MODULOSETTURNSUDINT3222412SETDIRUDINT3225613TARGETPOSITIONUDINT3228819REMAININGTIMEANDPOSUDINT3232020STOPINFORMATIONUDINT3235224SETTASKCYCLE_WITHOUTCORRUDINT3238425SETPOS_WITHOUTCORRUDINT3241626SETVELO_WITHOUTCORRUDINT3244830SETACC_WITHOUTCORRUDINT3248031SETDIR_WITHOUTCORRUDINT3251229COUPLESTATEUDINT3254432CPLPARAMSUDINT3257634CPLFACTORUDINT3260835AXISCTRLLOOPIDXUDINT3264036AXISSETPOINTGENIDXUDINT3267237CPLCHARACVALUESUDINT3270438CAMINFOUDINT3273639CAMSTATUSUDINT3276840conditionalshow_ST_NCADS_AxisState832IDXGRPUDINT32016640IDXOFFS_ST_NCADS_IDXOFFS_AxisState80032conditionalshow_ST_NCADS_IDXOFFS_AxisFunctions1792RESETUDINT3201STOPUDINT32322CLEARUDINT32643EMERGENCYSTOPUDINT32964PARAMETRIZEDSTOPUDINT321285INITIALIZEUDINT321607ORIENTEDSTOPUDINT321929CALIBRUDINT3222416NEWTARGPOSUDINT3225617NEWTARGPOSANDVELOUDINT3228818CHANGEDYNAMICPARAMUDINT3232021UNIVERSALSTARTUDINT3235222SLAVEUNIVERSALSTARTUDINT3238423RELEASEAXISLOCKUDINT3241624SETEXTERNALERRORUDINT3244825SETPOSUDINT3248026SETCALFLAGUDINT3251227SETACTPOSUDINT3254428SETDRIVEPOSUDINT3257629SETENCODERSCALINGUDINT3260830SETPOSONTHEFLYUDINT3264031STARTUDINT3267232STARTEXTUDINT3270433STARTVELOCHANGEUDINT3273634ENABLEEXTGENUDINT3276835DISABLEEXTGENUDINT3280036REVERSINGSEQUENCEUDINT3283237STARTDRVOUTUDINT3286438STOPDRVOUTUDINT3289639CHANGEDRVOUTUDINT3292840JUMPTOOVERRIDEUDINT3296041EXTSETGENUNIVERSALSTARTUDINT3299243UNIVERSALTORQUESTARTUDINT32102445STARTSCOMUDINT32105648STOPSCOMUDINT32108849PHASINGREQEUSTUDINT32112052CPLUDINT32115264DECPLUDINT32118465CPLCHANGEUDINT32121666TABCPLCHANGEUDINT32124867STOPSLAVEUDINT32128068CPLTABUDINT32131269TABSLVACTIVCORUDINT32134470TABSLVLEAVECYCUDINT32137671TABSLVCOROFFSETUDINT32140872TABSLVSCALINGUDINT32144073CPLSOLOTABUDINT32147274CPLSYNCHRONIZINGUDINT32150475CAMSCALINGUDINT32153677DISABLEUDINT32156880ENABLEUDINT32160081CHANGEAXISCTRLLOOPUDINT32163282DRIVEDISABLEUDINT32166496DRIVEENABLEUDINT32169697RELEASEBRAKEUDINT32172898RECONFIGURATEUDINT321760112conditionalshow_ST_NCADS_AxisFunctions1824IDXGRPUDINT32016896IDXOFFS_ST_NCADS_IDXOFFS_AxisFunctions179232conditionalshow_ST_NCADS_Axis4320Parameter_ST_NCADS_AxisParameter16640State_ST_NCADS_AxisState8321664Functions_ST_NCADS_AxisFunctions18242496conditionalshow_ST_NCADS_IDXOFFS_TableParameter192MFREADCHARACVALUESUDINT32080WRITETABROWSUDINT323216777216WRITEMFTABROWSUDINT326483886080MFREADTABUDINT329634READSLAVEDYNAMICSUDINT3212835READMASTERPOSITIONUDINT3216036conditionalshow_ST_NCADS_TableParameter224IDXGRPUDINT32040960IDXOFFS_ST_NCADS_IDXOFFS_TableParameter19232conditionalshow_ST_NCADS_IDXOFFS_TableFunctions96CREATETABUDINT32065536CREATEMOTIONTABUDINT323265552DELETETABUDINT3264131072conditionalshow_ST_NCADS_TableFunctions128IDXGRPUDINT32041472IDXOFFS_ST_NCADS_IDXOFFS_TableFunctions9632conditionalshow_ST_NCADS_Table352Parameter_ST_NCADS_TableParameter2240Functions_ST_NCADS_TableFunctions128224conditionalshowT_AmsPort16UINTADSRDDEVINFO1344NETIDT_AmsNetID19264ItemTypeInputPORTT_AmsPort16256ItemTypeInputRDINFOBOOL8272ItemTypeInputTMOUTTIME322885000ItemTypeInputBUSYBOOL8320ItemTypeOutputERRBOOL8328ItemTypeOutputERRIDUDINT32352ItemTypeOutputDEVNAMESTRING(19)160384ItemTypeOutputDEVVERUDINT32544ItemTypeOutputPouTypeFunctionBlockhide_all_locals_TCMCGLOBAL7104NCPORT_TCMCUINT1664500ItemTypeInputNCPORT_TCMC_COUPLINGUINT1680500ItemTypeInputNCNETID_TCMCT_AmsNetID19296ItemTypeInputNCPORT_TCMC_CAMUINT16288500ItemTypeInputNCPORT_TCMC_CAM_FASTUINT16304500ItemTypeInputNCNETID_TCMC_CAMT_AmsNetID192320ItemTypeInputNCPORT_TCMC_SUPERPOSITIONUINT16512501ItemTypeInputNCPORT_TCMC_RESETUINT16528500ItemTypeInputNcDeviceInfoTcMainVersionDWORD32544ItemTypeOutputNcDeviceInfoTcSubVersionDWORD32576ItemTypeOutputNcDeviceInfoNcDriverVersionDWORD32608ItemTypeOutputNcDeviceInfoNcVersionDWORD32640ItemTypeOutputNcDeviceInfoNcNameSTRING(19)160672ItemTypeOutputAxis_ST_NCADS_Axis4320832ItemTypeOutputsuppress_warning_0C0228Table_ST_NCADS_Table3525152ItemTypeOutputsuppress_warning_0C0228NCPORT_TCNCCAMMING_TABLEFUNCTIONUINT165504500tTargetPosTimeOutTIME3255366000tADSTimeOutTIME3255681000tStopMonitoringTimeOutTIME325600100NCTOPLC_FEEDBACK_MAXWAITCYCLESINT16563210fbADSRDDEVINFOADSRDDEVINFO13445696DeviceVersionDWORD327040InitBOOL87072ReadDeviceInfoPouTypeFunctionBlockconditionalshowVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024LCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseLCLSVacuumSerialDriverLib{08500001-0000-0000-F000-000000000064}LCLSGeneralEventClassApplicationNamePort_851ChangeDate2023-12-31T07:01:33GeneratedCodeSize540672GlobalDataSize78856192 \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_COM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_COM.TcPOU new file mode 100644 index 0000000..e0b2b0b --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_COM.TcPOU @@ -0,0 +1,47 @@ + + + + + + , + q_xError=> , + q_xTimeout=> , + q_sResult=> , + q_stStatus=> stTD400Status); + +IF fbTD400SerialDriver.q_xDone + OR fbTD400SerialDriver.q_xError + OR fbTD400SerialDriver.q_xTimeout THEN + (* reset for next time *) + fbTD400SerialDriver(i_xExecute:= FALSE, iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); +END_IF +]]> + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU new file mode 100644 index 0000000..c7f40ab --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU @@ -0,0 +1,297 @@ + + + + + + i_stControl.wSetSetpointFreq_P24 THEN + nOldSetSetpointFreq_P24 := i_stControl.wSetSetpointFreq_P24; + bSetFreq := TRUE; +END_IF + +(* rising edge trigger *) +rtExecute(CLK:= i_xExecute); +IF rtExecute.Q THEN + q_xDone := FALSE; + q_xError := FALSE; + q_xTimeout := FALSE; + q_sResult:= ''; + iStep := 10; +END_IF + +CASE iStep OF + 0: (* idle *) + ; + + 10: (* assure rising edge *) + fbTD400Transaction.i_xExecute := FALSE; + iStep := iStep + 10; + + 20:(* get P20 *) + fbTD400Transaction.i_wPKE := 16#1000 OR 20; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 20) THEN + q_stStatus.wCriticalFreq_P20 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 30:(* set P24 *) + IF bSetFreq THEN + fbTD400Transaction.i_wPKE := 16#2000 OR 24; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := WORD_TO_DWORD(i_stControl.wSetSetpointFreq_P24); + fbTD400Transaction.i_xExecute := TRUE; + + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + bSetFreq := FALSE; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + bSetFreq := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 24) THEN + q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + ELSE + iStep := iStep + 10; + END_IF + + 40:(* get P24 *) + IF bSetFreq THEN + fbTD400Transaction.i_wPKE := 16#2000 OR 24; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := WORD_TO_DWORD(i_stControl.wSetSetpointFreq_P24); + //fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + bSetFreq := FALSE; + ELSE + fbTD400Transaction.i_wPKE := 16#1000 OR 24; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + END_IF + + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 24) THEN + q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 50:(* get P32 *) + fbTD400Transaction.i_wPKE := 16#1000 OR 32; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 32) THEN + q_stStatus.wMaxRunUpTime_P32 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 60:(* get P171 index 0 *) + fbTD400Transaction.i_wPKE := 16#6000 OR 171; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#4000 OR 171) THEN + q_stStatus.wErrorCode_P171 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + //iStep := 8000; + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 70:(* get P18 *) + fbTD400Transaction.i_wPKE := 16#1000 OR 18; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 18) THEN + q_stStatus.wMaxSetpointFreq_P18 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 80:(* get P19 *) + fbTD400Transaction.i_wPKE := 16#1000 OR 19; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 19) THEN + q_stStatus.wMinSetpointFreq_P19 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := 8000; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 8000: (* done *) + q_xDone := TRUE; + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF + + 9000: (* Transaction Error *) + q_xError := TRUE; + + 9100: (* Driver Error *) + q_xError := TRUE; + +END_CASE + +fbTD400Transaction( + i_wControlWord:= i_wControlWord, + i_tTimeOut:= i_tTimeOut, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer, + q_wStatusWord=> q_stStatus.wStatusWord, + q_wFrequency_P3=> q_stStatus.wFrequency_P3, + q_wVoltage_P4=> q_stStatus.wVoltage_P4, + q_wMotorCurrent_P5=> q_stStatus.wMotorCurrent_P5, + q_wConverterTemp_P11=> q_stStatus.wConverterTemp_P11, + q_wPumpTemp_P127=> q_stStatus.wPumpTemp_P127); + +IF fbTD400Transaction.q_xError THEN + a_ClearStatus(); +END_IF + +q_abLastSentArray := fbTD400Transaction.q_abLastSentArray; +q_abLastReceivedArray := fbTD400Transaction.q_abLastReceivedArray;]]> + + + + + + + + + q_sResult); + +a_ClearStatus();]]> + + + + + q_sResult); + +a_ClearStatus(); +q_xTimeout := fbTD400Transaction.q_xTimeout;]]> + + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400Transaction.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400Transaction.TcPOU new file mode 100644 index 0000000..ebd9f0e --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400Transaction.TcPOU @@ -0,0 +1,225 @@ + + + + + + 0 THEN + q_sResult := CONCAT('In step 20 fbSendData resulted in error: ', INT_TO_STRING(fbSendData.Error)); + iStep := 9000; + ELSIF NOT fbSendData.Busy THEN + iStep := iStep + 10; + END_IF + (* Reset receive *) + fbReceiveData( + pReceiveData:= ADR(q_abResponseData), + Reset:= TRUE, + RXbuffer:= iq_stSerialRXBuffer); + tonTimeout(IN:= FALSE); + + 30: (* Get reply *) + fbReceiveData( + pReceiveData:= ADR(q_abResponseData), + SizeReceiveData:= 24, + Timeout:= i_tTimeOut, + Reset:= FALSE, + RXbuffer:= iq_stSerialRXBuffer, + pPrefix := ADR(nPrefix), LenPrefix:=1 ); + tonTimeout(IN:= TRUE, PT:= i_tTimeOut); + IF fbReceiveData.Error <> 0 THEN + q_sResult := CONCAT('In step 30 fbReceiveData resulted in error: ', INT_TO_STRING(fbReceiveData.Error)); + iStep := 9000; + ELSIF fbReceiveData.RxTimeout OR tonTimeout.Q THEN + q_sResult := 'Device failed to reply within timeout period'; + q_xTimeout := TRUE; + iStep := 9000; + ELSIF fbReceiveData.DataReceived THEN + q_abLastReceivedArray := q_abResponseData; + bRXChecksum := F_CalcTD400Checksum(q_abResponseData); + bRXAddress := q_abResponseData[2]; + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[3]), n:=2); + q_wPKE := BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(dwTemp) , srcAddr:=ADR(q_abResponseData[7]), n:=4); + q_dwPWE := BE32_TO_HOST(dwTemp); + + IF bRXChecksum <> q_abResponseData[23] THEN + q_sResult := 'Invalid checksum on received data.'; + iStep := 9000; + ELSIF i_bAddress <> bRXAddress THEN + q_sResult := 'Invalid unit address on received data.'; + iStep := 9000; + ELSIF (q_wPKE AND 16#F000) = 2#0111000000000000 THEN + q_sResult := 'Frequency converter cannot run the command.'; + iStep := 9000; + ELSIF (Q_wPKE AND 16#F000) = 2#1000000000000000 THEN + q_sResult := 'During write access: no permission to write.'; + iStep := 9000; + ELSE + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[11]), n:=2); + q_wStatusWord := BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[13]), n:=2); + q_wFrequency_P3:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[21]), n:=2); + q_wVoltage_P4:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[17]), n:=2); + q_wMotorCurrent_P5:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[15]), n:=2); + q_wConverterTemp_P11:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[19]), n:=2); + q_wPumpTemp_P127:= BE16_TO_HOST(wTemp); + q_sResult := 'Success.'; + q_xDone:= TRUE; + iStep := 100; + END_IF + END_IF + + 100: (* done *) + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF + + 9000: + q_wPKE:= 0; + q_dwPWE:= 0; + q_wStatusWord:= 0; + q_wFrequency_P3:= 0; + q_wVoltage_P4:= 0; + q_wMotorCurrent_P5:= 0; + q_wConverterTemp_P11:= 0; + q_wPumpTemp_P127:= 0; + q_xError := TRUE; + +END_CASE]]> + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU new file mode 100644 index 0000000..0e901d7 --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file From 2916bb2d2cc63e2455a676151fc111d445ddc736 Mon Sep 17 00:00:00 2001 From: Janez Govednik Date: Fri, 16 Feb 2024 11:01:05 -0800 Subject: [PATCH 2/5] Adding FB for IO mapping with current PTM structure, other minor fixes --- .../LCLSVacuumSerialDriverLib.plcproj | 3 ++ .../LCLSVacuumSerialDriverLib.tmc | 16 +++---- .../LCLSVacuumSerialDriverLib/LineIDs.dbg | Bin 168 -> 364 bytes .../FB_OERLIKON_TD400_TO_PTM.TcPOU | 44 ++++++++++++++++++ .../Oerlikon TD400/FB_TD400SerialDriver.TcPOU | 18 ++----- 5 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj index feae826..e53e0db 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.plcproj @@ -98,6 +98,9 @@ Code + + Code + Code diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc index 9bae5a7..87950e8 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc @@ -1,4 +1,4 @@ -ST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33E_PressureState16INTOff0GaugeDisconnected1OoR2PressInvalid3Starting4Valid5ValidHi6ValidLo7Gauge_Type16INTPG722B0IG9031PG9072IG9093PG9254ST_VG1056rPRESSREALST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33E_PressureState16INTOff0GaugeDisconnected1OoR2PressInvalid3Starting4Valid5ValidHi6ValidLo7Gauge_Type16INTPG722B0IG9031PG9072IG9093PG9254ST_VG1056rPRESSREAL320pytmc pv: PRESS; @@ -188,16 +188,16 @@ These features aren't disabled, they just aren't used, think child/parent classe If bOk == FALSE and cbReturn <> 0 => Number of required read buffer data bytes (cbRead underflow) ]]>325120ItemTypeOutputidxLastDWORD325440conditionalshowidxFirstDWORD325760conditionalshowidxGetDWORD32608conditionalshowpTmpBYTE64640conditionalshowcbTmpDWORD32704conditionalshowcbCopiedDWORD32736conditionalshowA_ResetA_AddTailA_RemoveHeadA_GetHeadPouTypeFunctionBlockconditionalshow_all_localsTON256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockFB_AdsLogStringMessageFifoQueue8321152ArrayBufferBYTE01040000832000064MemRingBufferFB_MemRingBuffer7688320064TimerBetweenMessagesTON2568320832.IN1.PT10MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT883210884TIME_BETWEEN_MESSAGESTIME32832112010GetLogCountUDINT32WriteLogMsgCtrlMaskDWORD32MsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_AdsLogStringMessage4128GetAndRemoveLogFromQueueAdsLogStringMessageST_AdsLogStringMessage4128ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_PMPS_Attenuator_IO64nTranREAL320xAttOKUINT1632ST_PMPS_Attenuator64ST_PMPS_Attenuator_IOST_PMPS_Aperture_IO96WidthREAL320plcAttribute_pytmcpv: Width +]]>8321152ArrayBufferBYTE01040000832000064MemRingBufferFB_MemRingBuffer7688320064TimerBetweenMessagesTON2568320832.IN1.PT10MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT883210884TIME_BETWEEN_MESSAGESTIME32832112010GetLogCountUDINT32WriteLogMsgCtrlMaskDWORD32MsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_AdsLogStringMessage4128GetAndRemoveLogFromQueueAdsLogStringMessageST_AdsLogStringMessage4128ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_PMPS_Attenuator_IO64nTranREAL320xAttOKUINT1632ST_PMPS_Attenuator64ST_PMPS_Attenuator_IOST_PMPS_Aperture_IO96WidthREAL320plcAttribute_pytmcpv: Width io: i - field: EGU mmHeightREAL3232plcAttribute_pytmcpv: Height + field: EGU mmHeightREAL3232plcAttribute_pytmcpv: Height io: i - field: EGU mmxOKBOOL864plcAttribute_pytmcpv: OK + field: EGU mmxOKBOOL864plcAttribute_pytmcpv: OK io: iST_PMPS_Aperture96ST_PMPS_Aperture_IOST_BeamParams1760nTranREAL3200pytmcpv: Transmission io: i - field: HOPR 1; - field: LOPR 0; - field: PREC 2; + field: HOPR 1; + field: LOPR 0; + field: PREC 2; nRateUDINT32320pytmcpv: Rate io: i field: EGU Hz @@ -230,4 +230,4 @@ These features aren't disabled, they just aren't used, think child/parent classe MODULOACTPOS = TCNC_IDXOFFS_AXmappedENC | 0x00000003; // 0x00010003; MODULOACTTURNS = TCNC_IDXOFFS_AXmappedENC | 0x00000004; // 0x00010004; ACTINCREMENTS = TCNC_IDXOFFS_AXmappedENC | 0x00000007; // 0x00010007; -]]>32649SETPOSUDINT329610SETVELOUDINT3212814SETACCUDINT3216015MODULOSETPOSUDINT3219211MODULOSETTURNSUDINT3222412SETDIRUDINT3225613TARGETPOSITIONUDINT3228819REMAININGTIMEANDPOSUDINT3232020STOPINFORMATIONUDINT3235224SETTASKCYCLE_WITHOUTCORRUDINT3238425SETPOS_WITHOUTCORRUDINT3241626SETVELO_WITHOUTCORRUDINT3244830SETACC_WITHOUTCORRUDINT3248031SETDIR_WITHOUTCORRUDINT3251229COUPLESTATEUDINT3254432CPLPARAMSUDINT3257634CPLFACTORUDINT3260835AXISCTRLLOOPIDXUDINT3264036AXISSETPOINTGENIDXUDINT3267237CPLCHARACVALUESUDINT3270438CAMINFOUDINT3273639CAMSTATUSUDINT3276840conditionalshow_ST_NCADS_AxisState832IDXGRPUDINT32016640IDXOFFS_ST_NCADS_IDXOFFS_AxisState80032conditionalshow_ST_NCADS_IDXOFFS_AxisFunctions1792RESETUDINT3201STOPUDINT32322CLEARUDINT32643EMERGENCYSTOPUDINT32964PARAMETRIZEDSTOPUDINT321285INITIALIZEUDINT321607ORIENTEDSTOPUDINT321929CALIBRUDINT3222416NEWTARGPOSUDINT3225617NEWTARGPOSANDVELOUDINT3228818CHANGEDYNAMICPARAMUDINT3232021UNIVERSALSTARTUDINT3235222SLAVEUNIVERSALSTARTUDINT3238423RELEASEAXISLOCKUDINT3241624SETEXTERNALERRORUDINT3244825SETPOSUDINT3248026SETCALFLAGUDINT3251227SETACTPOSUDINT3254428SETDRIVEPOSUDINT3257629SETENCODERSCALINGUDINT3260830SETPOSONTHEFLYUDINT3264031STARTUDINT3267232STARTEXTUDINT3270433STARTVELOCHANGEUDINT3273634ENABLEEXTGENUDINT3276835DISABLEEXTGENUDINT3280036REVERSINGSEQUENCEUDINT3283237STARTDRVOUTUDINT3286438STOPDRVOUTUDINT3289639CHANGEDRVOUTUDINT3292840JUMPTOOVERRIDEUDINT3296041EXTSETGENUNIVERSALSTARTUDINT3299243UNIVERSALTORQUESTARTUDINT32102445STARTSCOMUDINT32105648STOPSCOMUDINT32108849PHASINGREQEUSTUDINT32112052CPLUDINT32115264DECPLUDINT32118465CPLCHANGEUDINT32121666TABCPLCHANGEUDINT32124867STOPSLAVEUDINT32128068CPLTABUDINT32131269TABSLVACTIVCORUDINT32134470TABSLVLEAVECYCUDINT32137671TABSLVCOROFFSETUDINT32140872TABSLVSCALINGUDINT32144073CPLSOLOTABUDINT32147274CPLSYNCHRONIZINGUDINT32150475CAMSCALINGUDINT32153677DISABLEUDINT32156880ENABLEUDINT32160081CHANGEAXISCTRLLOOPUDINT32163282DRIVEDISABLEUDINT32166496DRIVEENABLEUDINT32169697RELEASEBRAKEUDINT32172898RECONFIGURATEUDINT321760112conditionalshow_ST_NCADS_AxisFunctions1824IDXGRPUDINT32016896IDXOFFS_ST_NCADS_IDXOFFS_AxisFunctions179232conditionalshow_ST_NCADS_Axis4320Parameter_ST_NCADS_AxisParameter16640State_ST_NCADS_AxisState8321664Functions_ST_NCADS_AxisFunctions18242496conditionalshow_ST_NCADS_IDXOFFS_TableParameter192MFREADCHARACVALUESUDINT32080WRITETABROWSUDINT323216777216WRITEMFTABROWSUDINT326483886080MFREADTABUDINT329634READSLAVEDYNAMICSUDINT3212835READMASTERPOSITIONUDINT3216036conditionalshow_ST_NCADS_TableParameter224IDXGRPUDINT32040960IDXOFFS_ST_NCADS_IDXOFFS_TableParameter19232conditionalshow_ST_NCADS_IDXOFFS_TableFunctions96CREATETABUDINT32065536CREATEMOTIONTABUDINT323265552DELETETABUDINT3264131072conditionalshow_ST_NCADS_TableFunctions128IDXGRPUDINT32041472IDXOFFS_ST_NCADS_IDXOFFS_TableFunctions9632conditionalshow_ST_NCADS_Table352Parameter_ST_NCADS_TableParameter2240Functions_ST_NCADS_TableFunctions128224conditionalshowT_AmsPort16UINTADSRDDEVINFO1344NETIDT_AmsNetID19264ItemTypeInputPORTT_AmsPort16256ItemTypeInputRDINFOBOOL8272ItemTypeInputTMOUTTIME322885000ItemTypeInputBUSYBOOL8320ItemTypeOutputERRBOOL8328ItemTypeOutputERRIDUDINT32352ItemTypeOutputDEVNAMESTRING(19)160384ItemTypeOutputDEVVERUDINT32544ItemTypeOutputPouTypeFunctionBlockhide_all_locals_TCMCGLOBAL7104NCPORT_TCMCUINT1664500ItemTypeInputNCPORT_TCMC_COUPLINGUINT1680500ItemTypeInputNCNETID_TCMCT_AmsNetID19296ItemTypeInputNCPORT_TCMC_CAMUINT16288500ItemTypeInputNCPORT_TCMC_CAM_FASTUINT16304500ItemTypeInputNCNETID_TCMC_CAMT_AmsNetID192320ItemTypeInputNCPORT_TCMC_SUPERPOSITIONUINT16512501ItemTypeInputNCPORT_TCMC_RESETUINT16528500ItemTypeInputNcDeviceInfoTcMainVersionDWORD32544ItemTypeOutputNcDeviceInfoTcSubVersionDWORD32576ItemTypeOutputNcDeviceInfoNcDriverVersionDWORD32608ItemTypeOutputNcDeviceInfoNcVersionDWORD32640ItemTypeOutputNcDeviceInfoNcNameSTRING(19)160672ItemTypeOutputAxis_ST_NCADS_Axis4320832ItemTypeOutputsuppress_warning_0C0228Table_ST_NCADS_Table3525152ItemTypeOutputsuppress_warning_0C0228NCPORT_TCNCCAMMING_TABLEFUNCTIONUINT165504500tTargetPosTimeOutTIME3255366000tADSTimeOutTIME3255681000tStopMonitoringTimeOutTIME325600100NCTOPLC_FEEDBACK_MAXWAITCYCLESINT16563210fbADSRDDEVINFOADSRDDEVINFO13445696DeviceVersionDWORD327040InitBOOL87072ReadDeviceInfoPouTypeFunctionBlockconditionalshowVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024LCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseLCLSVacuumSerialDriverLib{08500001-0000-0000-F000-000000000064}LCLSGeneralEventClassApplicationNamePort_851ChangeDate2023-12-31T07:01:33GeneratedCodeSize540672GlobalDataSize78856192 \ No newline at end of file +]]>32649SETPOSUDINT329610SETVELOUDINT3212814SETACCUDINT3216015MODULOSETPOSUDINT3219211MODULOSETTURNSUDINT3222412SETDIRUDINT3225613TARGETPOSITIONUDINT3228819REMAININGTIMEANDPOSUDINT3232020STOPINFORMATIONUDINT3235224SETTASKCYCLE_WITHOUTCORRUDINT3238425SETPOS_WITHOUTCORRUDINT3241626SETVELO_WITHOUTCORRUDINT3244830SETACC_WITHOUTCORRUDINT3248031SETDIR_WITHOUTCORRUDINT3251229COUPLESTATEUDINT3254432CPLPARAMSUDINT3257634CPLFACTORUDINT3260835AXISCTRLLOOPIDXUDINT3264036AXISSETPOINTGENIDXUDINT3267237CPLCHARACVALUESUDINT3270438CAMINFOUDINT3273639CAMSTATUSUDINT3276840conditionalshow_ST_NCADS_AxisState832IDXGRPUDINT32016640IDXOFFS_ST_NCADS_IDXOFFS_AxisState80032conditionalshow_ST_NCADS_IDXOFFS_AxisFunctions1792RESETUDINT3201STOPUDINT32322CLEARUDINT32643EMERGENCYSTOPUDINT32964PARAMETRIZEDSTOPUDINT321285INITIALIZEUDINT321607ORIENTEDSTOPUDINT321929CALIBRUDINT3222416NEWTARGPOSUDINT3225617NEWTARGPOSANDVELOUDINT3228818CHANGEDYNAMICPARAMUDINT3232021UNIVERSALSTARTUDINT3235222SLAVEUNIVERSALSTARTUDINT3238423RELEASEAXISLOCKUDINT3241624SETEXTERNALERRORUDINT3244825SETPOSUDINT3248026SETCALFLAGUDINT3251227SETACTPOSUDINT3254428SETDRIVEPOSUDINT3257629SETENCODERSCALINGUDINT3260830SETPOSONTHEFLYUDINT3264031STARTUDINT3267232STARTEXTUDINT3270433STARTVELOCHANGEUDINT3273634ENABLEEXTGENUDINT3276835DISABLEEXTGENUDINT3280036REVERSINGSEQUENCEUDINT3283237STARTDRVOUTUDINT3286438STOPDRVOUTUDINT3289639CHANGEDRVOUTUDINT3292840JUMPTOOVERRIDEUDINT3296041EXTSETGENUNIVERSALSTARTUDINT3299243UNIVERSALTORQUESTARTUDINT32102445STARTSCOMUDINT32105648STOPSCOMUDINT32108849PHASINGREQEUSTUDINT32112052CPLUDINT32115264DECPLUDINT32118465CPLCHANGEUDINT32121666TABCPLCHANGEUDINT32124867STOPSLAVEUDINT32128068CPLTABUDINT32131269TABSLVACTIVCORUDINT32134470TABSLVLEAVECYCUDINT32137671TABSLVCOROFFSETUDINT32140872TABSLVSCALINGUDINT32144073CPLSOLOTABUDINT32147274CPLSYNCHRONIZINGUDINT32150475CAMSCALINGUDINT32153677DISABLEUDINT32156880ENABLEUDINT32160081CHANGEAXISCTRLLOOPUDINT32163282DRIVEDISABLEUDINT32166496DRIVEENABLEUDINT32169697RELEASEBRAKEUDINT32172898RECONFIGURATEUDINT321760112conditionalshow_ST_NCADS_AxisFunctions1824IDXGRPUDINT32016896IDXOFFS_ST_NCADS_IDXOFFS_AxisFunctions179232conditionalshow_ST_NCADS_Axis4320Parameter_ST_NCADS_AxisParameter16640State_ST_NCADS_AxisState8321664Functions_ST_NCADS_AxisFunctions18242496conditionalshow_ST_NCADS_IDXOFFS_TableParameter192MFREADCHARACVALUESUDINT32080WRITETABROWSUDINT323216777216WRITEMFTABROWSUDINT326483886080MFREADTABUDINT329634READSLAVEDYNAMICSUDINT3212835READMASTERPOSITIONUDINT3216036conditionalshow_ST_NCADS_TableParameter224IDXGRPUDINT32040960IDXOFFS_ST_NCADS_IDXOFFS_TableParameter19232conditionalshow_ST_NCADS_IDXOFFS_TableFunctions96CREATETABUDINT32065536CREATEMOTIONTABUDINT323265552DELETETABUDINT3264131072conditionalshow_ST_NCADS_TableFunctions128IDXGRPUDINT32041472IDXOFFS_ST_NCADS_IDXOFFS_TableFunctions9632conditionalshow_ST_NCADS_Table352Parameter_ST_NCADS_TableParameter2240Functions_ST_NCADS_TableFunctions128224conditionalshowT_AmsPort16UINTADSRDDEVINFO1344NETIDT_AmsNetID19264ItemTypeInputPORTT_AmsPort16256ItemTypeInputRDINFOBOOL8272ItemTypeInputTMOUTTIME322885000ItemTypeInputBUSYBOOL8320ItemTypeOutputERRBOOL8328ItemTypeOutputERRIDUDINT32352ItemTypeOutputDEVNAMESTRING(19)160384ItemTypeOutputDEVVERUDINT32544ItemTypeOutputPouTypeFunctionBlockhide_all_locals_TCMCGLOBAL7104NCPORT_TCMCUINT1664500ItemTypeInputNCPORT_TCMC_COUPLINGUINT1680500ItemTypeInputNCNETID_TCMCT_AmsNetID19296ItemTypeInputNCPORT_TCMC_CAMUINT16288500ItemTypeInputNCPORT_TCMC_CAM_FASTUINT16304500ItemTypeInputNCNETID_TCMC_CAMT_AmsNetID192320ItemTypeInputNCPORT_TCMC_SUPERPOSITIONUINT16512501ItemTypeInputNCPORT_TCMC_RESETUINT16528500ItemTypeInputNcDeviceInfoTcMainVersionDWORD32544ItemTypeOutputNcDeviceInfoTcSubVersionDWORD32576ItemTypeOutputNcDeviceInfoNcDriverVersionDWORD32608ItemTypeOutputNcDeviceInfoNcVersionDWORD32640ItemTypeOutputNcDeviceInfoNcNameSTRING(19)160672ItemTypeOutputAxis_ST_NCADS_Axis4320832ItemTypeOutputsuppress_warning_0C0228Table_ST_NCADS_Table3525152ItemTypeOutputsuppress_warning_0C0228NCPORT_TCNCCAMMING_TABLEFUNCTIONUINT165504500tTargetPosTimeOutTIME3255366000tADSTimeOutTIME3255681000tStopMonitoringTimeOutTIME325600100NCTOPLC_FEEDBACK_MAXWAITCYCLESINT16563210fbADSRDDEVINFOADSRDDEVINFO13445696DeviceVersionDWORD327040InitBOOL87072ReadDeviceInfoPouTypeFunctionBlockconditionalshowVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024LCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseLCLSVacuumSerialDriverLib{08500001-0000-0000-F000-000000000064}LCLSGeneralEventClassApplicationNamePort_851ChangeDate2024-02-16T10:57:48GeneratedCodeSize540672GlobalDataSize78856192 \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LineIDs.dbg b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LineIDs.dbg index 976d404876143583e2a377c07b4be66f5ae409a2..f7d5b20bf47f1ce32ee15ef4ed787d10841891f0 100644 GIT binary patch delta 204 zcmZ3%_=ai1iu$L^S7h=3W^tT%$WPgJbKL?~1_lOZAoc*_P$)YZNY?=|6A**Ie+b1O z(aZhIY~EzQ{-COP5306{g5*IMWCkNtO=x6b?DB0a-s`vXbTNKZ{0>vY0#V}%R>pF? zz5Hw02LA=O*0qJo%$^6*3{uDi#Cu+R-_<6v(|_iP%6$sW6>C7^^MF_ih~0r01OQ$; BFK_?= delta 6 NcmaFEw1RQM3IGZN0?+^e diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU new file mode 100644 index 0000000..d38566f --- /dev/null +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU @@ -0,0 +1,44 @@ + + + + + + + + + \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU index c7f40ab..eee42c8 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU @@ -113,20 +113,10 @@ CASE iStep OF END_IF 40:(* get P24 *) - IF bSetFreq THEN - fbTD400Transaction.i_wPKE := 16#2000 OR 24; - fbTD400Transaction.i_bIND := 0; - fbTD400Transaction.i_dwPWE := WORD_TO_DWORD(i_stControl.wSetSetpointFreq_P24); - //fbTD400Transaction.i_dwPWE := 0; - fbTD400Transaction.i_xExecute := TRUE; - bSetFreq := FALSE; - ELSE - fbTD400Transaction.i_wPKE := 16#1000 OR 24; - fbTD400Transaction.i_bIND := 0; - fbTD400Transaction.i_dwPWE := 0; - fbTD400Transaction.i_xExecute := TRUE; - END_IF - + fbTD400Transaction.i_wPKE := 16#1000 OR 24; + fbTD400Transaction.i_bIND := 0; + fbTD400Transaction.i_dwPWE := 0; + fbTD400Transaction.i_xExecute := TRUE; IF fbTD400Transaction.q_xError THEN iCatch := iCatch +1; a_TransactionErrorMesg(); From 051aba8fbac7380de564aa8e14a152e3b3ad04e5 Mon Sep 17 00:00:00 2001 From: Janez Govednik Date: Fri, 16 Feb 2024 11:04:15 -0800 Subject: [PATCH 3/5] Run pre-commit --- .../Pfeiffer_EP6002-0002_RS485.xml | 135 +- .../TD20_Classic_to_EL6002.xml | 118 +- .../DUTs/LVDT/ST_SerLVC4000.TcDUT | 62 +- .../DUTs/Oerlikon/ST_TD20Status.TcDUT | 104 +- .../DUTs/Pfeiffer/ST_PfeifferControl.TcDUT | 108 +- .../DUTs/Pfeiffer/ST_PfeifferStatus.TcDUT | 210 +- .../GVLs/GVL_MacroSensorsParameters.TcGVL | 2 +- .../GVLs/GVL_PfeifferParameters.TcGVL | 2 +- .../LCLSVacuumSerialDriverLib.tmc | 15139 +++++++++++++++- .../LVDT/MacroSensors/FB_LVC4000Com.TcPOU | 42 +- .../MacroSensors/FB_LVC4000SerialDriver.TcPOU | 136 +- .../MacroSensors/FB_LVC4000Transaction.TcPOU | 238 +- .../Oerlikon TD20/FB_OERLIKON_TD20_COM.TcPOU | 44 +- .../Oerlikon TD20/FB_OERLIKON_TO_PTM.TcPOU | 4 +- .../Oerlikon TD20/FB_TD20SerialDriver.TcPOU | 391 +- .../Oerlikon TD20/FB_TD20Transaction.TcPOU | 396 +- .../Oerlikon TD20/F_CalcTD20Checksum.TcPOU | 8 +- .../FB_OERLIKON_TD400_TO_PTM.TcPOU | 6 +- .../Oerlikon TD400/FB_TD400SerialDriver.TcPOU | 58 +- .../Oerlikon TD400/F_CalcTD400Checksum.TcPOU | 8 +- .../Pumps/Pfeiffer/FB_PFEIFFER_COM.TcPOU | 42 +- .../Pumps/Pfeiffer/FB_PFEIFFER_TO_PTM.TcPOU | 20 +- .../Pfeiffer/FB_PfeifferSerialDriver.TcPOU | 1008 +- .../Pfeiffer/FB_PfeifferTransaction.TcPOU | 274 +- .../Pfeiffer/F_CalcPfeifferCheckSum.TcPOU | 8 +- .../Serial/Oerlikon/ST_TD20Status.TcDUT | 44 +- .../Serial/Pfeiffer/ST_PfeifferControl.TcDUT | 26 +- .../Serial/Pfeiffer/ST_PfeifferStatus.TcDUT | 30 +- .../Version/Global_Version.TcGVL | 4 +- 29 files changed, 16863 insertions(+), 1804 deletions(-) diff --git a/CoeStartupParameters/Pfeiffer_EP6002-0002_RS485.xml b/CoeStartupParameters/Pfeiffer_EP6002-0002_RS485.xml index bcb340f..cbbb1cd 100644 --- a/CoeStartupParameters/Pfeiffer_EP6002-0002_RS485.xml +++ b/CoeStartupParameters/Pfeiffer_EP6002-0002_RS485.xml @@ -1,2 +1,133 @@ - -PS0163488101PS0163488201PS01327841706PS0132784601PS01327681706PS0132768601PS0132768700PS0132784700PS01327682103PS01327842103PS0132768200PS0132768300PS0132784200PS0132784300 + + + + + + PS + Interface Type Ch 1 + 0 + 1 + 63488 + 1 + 01 + + + PS + Interface Type Ch 2 + 0 + 1 + 63488 + 2 + 01 + + + PS + Baudrate + 0 + 1 + 32784 + 17 + 06 + + + PS + Enable half duplex + 0 + 1 + 32784 + 6 + 01 + + + PS + Baudrate + 0 + 1 + 32768 + 17 + 06 + + + PS + Enable half duplex + 0 + 1 + 32768 + 6 + 01 + + + PS + Enable point to point connection (RS422) + 0 + 1 + 32768 + 7 + 00 + + + PS + Enable point to point connection (RS422) + 0 + 1 + 32784 + 7 + 00 + + + PS + Data frame + 0 + 1 + 32768 + 21 + 03 + + + PS + Data frame + 0 + 1 + 32784 + 21 + 03 + + + PS + Enable XON/XOFF supported tx data + 0 + 1 + 32768 + 2 + 00 + + + PS + Enable XON/XOFF supported rx data + 0 + 1 + 32768 + 3 + 00 + + + PS + Enable XON/XOFF supported tx data + 0 + 1 + 32784 + 2 + 00 + + + PS + Enable XON/XOFF supported rx data + 0 + 1 + 32784 + 3 + 00 + + + + diff --git a/CoeStartupParameters/TD20_Classic_to_EL6002.xml b/CoeStartupParameters/TD20_Classic_to_EL6002.xml index 9552363..d62113a 100644 --- a/CoeStartupParameters/TD20_Classic_to_EL6002.xml +++ b/CoeStartupParameters/TD20_Classic_to_EL6002.xml @@ -1,61 +1,61 @@ - + - - - - PS - - 0 - 1 - 32768 - 17 - 07 - - - PS - - 0 - 1 - 32784 - 17 - 07 - - - PS - - 0 - 1 - 32768 - 1 - 00 - - - PS - - 0 - 1 - 32768 - 21 - 04 - - - PS - - 0 - 1 - 32784 - 1 - 00 - - - PS - - 0 - 1 - 32784 - 21 - 04 - - - + + + + PS + Baudrate + 0 + 1 + 32768 + 17 + 07 + + + PS + Baudrate + 0 + 1 + 32784 + 17 + 07 + + + PS + Enable RTS/CTS + 0 + 1 + 32768 + 1 + 00 + + + PS + Data frame + 0 + 1 + 32768 + 21 + 04 + + + PS + Enable RTS/CTS + 0 + 1 + 32784 + 1 + 00 + + + PS + Data frame + 0 + 1 + 32784 + 21 + 04 + + + diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/LVDT/ST_SerLVC4000.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/LVDT/ST_SerLVC4000.TcDUT index 75e3a9c..6d45a19 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/LVDT/ST_SerLVC4000.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/LVDT/ST_SerLVC4000.TcDUT @@ -3,55 +3,55 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD20Status.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD20Status.TcDUT index 6a57ac0..0aa6965 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD20Status.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Oerlikon/ST_TD20Status.TcDUT @@ -3,68 +3,68 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT index 2531a07..f5d99f7 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT @@ -3,65 +3,65 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferStatus.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferStatus.TcDUT index dd1e39d..5ced1ae 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferStatus.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferStatus.TcDUT @@ -3,111 +3,111 @@ \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/GVLs/GVL_PfeifferParameters.TcGVL b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/GVLs/GVL_PfeifferParameters.TcGVL index 7406517..2494b8c 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/GVLs/GVL_PfeifferParameters.TcGVL +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/GVLs/GVL_PfeifferParameters.TcGVL @@ -2,7 +2,7 @@ \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc index 87950e8..3a0ce10 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc @@ -1,23 +1,194 @@ -ST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33E_PressureState16INTOff0GaugeDisconnected1OoR2PressInvalid3Starting4Valid5ValidHi6ValidLo7Gauge_Type16INTPG722B0IG9031PG9072IG9093PG9254ST_VG1056rPRESSREAL + + + + ST_System + Defacto system structure, must be included in all projects + 40 + + xSwAlmRst + BOOL + Global Alarm Reset - EPICS Command + 8 + 0 + + + xAtVacuum + BOOL + System At Vacuum + 8 + 8 + + + xFirstScan + BOOL + This boolean is true for the first scan, and is false thereafter, use for initialization of stuff + 8 + 16 + + + xOverrideMode + BOOL + This bit is set when using the override features of the system + 8 + 24 + + + xIOState + BOOL + ECat Bus Health + 8 + 32 + + + + analysis + -33 + + + + + E_PressureState + 16 + INT + + Off + 0 + //gc_GaugeValidState - 1, + + + GaugeDisconnected + 1 + gc_GaugeValidState -2, + + + OoR + 2 + gc_GaugeValidState -6, + + + PressInvalid + 3 + gc_GaugeValidState - 3, + + + Starting + 4 + gc_GaugeValidState - 4 + + + Valid + 5 + gc_GaugeValidState set in "Global Variable Folder: Constants" + + + ValidHi + 6 + gc_GaugeValidState + 1, + + + ValidLo + 7 + gc_GaugeValidState + 2, + + + + Gauge_Type + 16 + INT + + PG722B + 0 + Baraton Gauge + + + IG903 + 1 + Cold Cathode + + + PG907 + 2 + Pirani Gauge + + + IG909 + 3 + Hot Cathode + + + PG925 + 4 + + + + ST_VG + 1056 + + rPRESS + REAL + A general gauge structure is used to make the rest of the interlocking simpler. There are some parameters for cold cathodes that are not used by pirani. These features aren't disabled, they just aren't used, think child/parent classes. - ]]>320pytmc + + 32 + 0 + + + pytmc + pv: PRESS; field: HOPR 1000 field: LOPR 0 field: PREC 2 field: EGU "TORR" io: i; - xAT_VACBOOL832pytmc + + + + + + xAT_VAC + BOOL + 8 + 32 + + + pytmc + pv: AT_VAC; io: i; field: ZNAM FALSE; field: ONAM TRUE; - xPRESS_OKBOOL840pytmc + + + + + + xPRESS_OK + BOOL + 8 + 40 + + + pytmc + pv: PRESS_OK; field: ZNAM OFF; field: ONAM ON; io: i; - eStateE_PressureState1648pytmc + + + + + + eState + E_PressureState + 16 + 48 + + + pytmc + pv: STATE; field: ZRST Off; field: ONST GaugeDisconnected; @@ -28,36 +199,197 @@ These features aren't disabled, they just aren't used, think child/parent classe field: SXST ValidHi; field: SVST ValidLo; io: i; - xHV_SWBOOL864pytmc + + + + + + xHV_SW + BOOL + High Voltage Switch from epics + 8 + 64 + + + pytmc + pv: HV_SW; io: io; field: ZNAM OFF; field: ONAM ON; - xAutoOnBOOL8721pytmc + + + + + + xAutoOn + BOOL + 8 + 72 + + 1 + + + + pytmc + pv: Auto_On; field: ZNAM FALSE; field: ONAM TRUE; io:io; - iAutoOnTimerINT1680pytmc + + + + + + iAutoOnTimer + INT + 16 + 80 + + + pytmc + pv: AutoOn_timer; io:i; - i_iPRESS_RINT1696pytmc + + + + + + i_iPRESS_R + INT + Controls and I/Os + 16 + 96 + + + pytmc + pv: PRESS_AI; io: i; - i_xHV_ONBOOL8112pytmc + + + + + + i_xHV_ON + BOOL + True when High Voltage is on + 8 + 112 + + + pytmc + pv: HV_ON; io: i; - i_xDisc_ActiveBOOL8120pytmc + + + + + + i_xDisc_Active + BOOL + Discharge Current Active + 8 + 120 + + + pytmc + pv: DISC_ACTIVE; field: ZNAM NO DISC; field: ONAM DISC ACTIVE; io: i; - q_xHV_DISBOOL8128pytmc + + + + + + q_xHV_DIS + BOOL + Enable High Voltage when True + 8 + 128 + + + pytmc + pv: HV_DIS_DO; io: i; field: ZNAM FALSE ; field: ONAM TRUE ; - wHV_ROWORD16144xBAKEOUTBOOL8160eTYPEGauge_Type161762iTYPEINT161922wPGWORD16208xTurnOnTimeBOOL8224iVacSpINT16240rVAC_SPREAL322560.001pytmc + + + + + + wHV_RO + WORD + 16 + 144 + + + xBAKEOUT + BOOL + Bakeout bit + 8 + 160 + + + eTYPE + Gauge_Type + enum for gauge type - will replace iType + 16 + 176 + + 2 + + + + iTYPE + INT + Gauge type, deprecated (default to pirani) + 16 + 192 + + 2 + + + + wPG + WORD + Index location of the associated Pirani Gauge + 16 + 208 + + + xTurnOnTime + BOOL + 8 + 224 + + + iVacSp + INT + Turn on Timers for cold cathode warmup + 16 + 240 + + + rVAC_SP + REAL + At vacuum setpoint for all gauges + 32 + 256 + + 0.001 + + + + pytmc + pv: VAC_SP; io:io; field: HOPR 1000 @@ -65,8 +397,24 @@ These features aren't disabled, they just aren't used, think child/parent classe field: PREC 2 field: EGU "TORR" autosave_pass1: VAL DESC - rPRO_SPREAL322880.001pytmc + + + + + + rPRO_SP + REAL + At vacuum setpoint for all gauges + Protection setpoint for ion gauges at which the gauge turns off, not used for pirani + 32 + 288 + + 0.001 + + + + pytmc + pv: PRO_SP; io: io; field: HOPR 1000 @@ -74,7 +422,23 @@ These features aren't disabled, they just aren't used, think child/parent classe field: PREC 2 field: EGU "TORR" autosave_pass1: VAL DESC - rHYS_PRREAL323200.001pytmc + + + + + + rHYS_PR + REAL + Protection setpoint hysteresis + 32 + 320 + + 0.001 + + + + pytmc + pv: SP_HYS; io: io; field: HOPR 1000 @@ -82,69 +446,6425 @@ These features aren't disabled, they just aren't used, think child/parent classe field: PREC 2 field: EGU "TORR" autosave_pass1: VAL DESC - xILKOkBOOL8352pytmc + + + + + + xILKOk + BOOL + also a control + 8 + 352 + + + pytmc + pv: ILK_OK; field: ZNAM NOT OK ; field: ONAM OK ; io: i; - xLogBOOL83601pytmc + + + + + + xLog + BOOL + 8 + 360 + + 1 + + + + pytmc + pv: LOGGER; io: io; field: ZNAM OFF ; field: ONAM ON ; - sPathSTRING(80)648368rFULL_SCALEREAL3210241000FW_GetCurTaskIndex96nIndexBYTE864ItemTypeOutputPouTypeFunctionBlockconditionalshowGETCURTASKINDEX256indexBYTE864ItemTypeOutputfbGetCurTaskIndexFW_GetCurTaskIndex96128conditionalshowPouTypeFunctionBlockconditionalshow_all_localsPlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296T_MaxString2048STRING(255)TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictE_Subsystem16WORDNILVALUE0VACUUM1MPS2MOTION3FIELDBUS4SDS5OPTICS6I_ArgumentsChangeListener64PVOIDOnArgumentsChangedITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL879363904bErrorBOOL879363976hrErrorCodeHRESULT3279363992nStringSizeUDINT3279363952sResultSTRING(255)204879363984__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertymonitoringcallInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32pEmptySTRING(80)64propertymonitoringcallClear__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232propertymonitoringcall__getsResultSTRING(255)2048sResultSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertymonitoringcallPouTypeFunctionBlockenable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOID__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32propertymonitoringcall__getsNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcEventEntry192uuidEventClassGUID1280nEventIdUDINT32128eSeverityTcEventSeverity16160I_TcEventBase64PVOID__geteSeverityTcEventSeverity16propertymonitoringcall__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64propertymonitoringcall__getnEventIdUDINT32propertymonitoringcall__getsEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getsEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputRequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputIQueryInterface64PVOID__GetInterfacePointerBOOL8pRefDWORD64__GetInterfaceReferenceBOOL8nInterfaceIdDINT32pRefDWORD64TcEventArgumentType16INT012345678910111213141516171819plcAttribute_qualified_onlyplcAttribute_strictITcArguments32ITcUnknownCountHRESULT32nCountUDINT32AddArgumentHRESULT32eTypeTcEventArgumentType16pDataPVOID32cbDataUDINT32GetHRESULT32nIndexUDINT32eTypeTcEventArgumentType32ppDataPVOID32ClearHRESULT32GetArgumentTypesHRESULT32pArgumentTypesTcEventArgumentType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32pDataBYTE32I_TcArguments64IQueryInterface__getipDataITcArguments64propertyconditionalshow__getnCountUDINT32propertyAddBlobI_TcArguments64pDataPVOID64cbDataUINT16AddBoolI_TcArguments64valueBOOL8AddByteI_TcArguments64valueBYTE8AddDIntI_TcArguments64valueDINT32AddDWordI_TcArguments64valueDWORD32AddEventReferenceExI_TcArguments64stEventEntryTcEventEntry192AddEventReferenceIdI_TcArguments64nEventIdUDINT32AddEventReferenceIdGuidI_TcArguments64nEventIdUDINT32EventClassGUID128AddIntI_TcArguments64valueINT16AddLIntI_TcArguments64valueLINT64AddLRealI_TcArguments64valueLREAL64AddRealI_TcArguments64valueREAL32AddSIntI_TcArguments64valueSINT8AddStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddStringByValueI_TcArguments64valueT_MaxString2048AddUDIntI_TcArguments64valueUDINT32AddUIntI_TcArguments64valueUINT16AddULIntI_TcArguments64valueULINT64AddUSIntI_TcArguments64valueUSINT8AddUtf8EncodedStringI_TcArguments64valueSTRING(80)64ItemTypeInOutAddWordI_TcArguments64valueWORD16AddWStringI_TcArguments64valueWSTRING(80)64ItemTypeInOutAddWStringByValueI_TcArguments64valueWSTRING(255)4096ClearI_TcArguments64ITcEventUniqueIdProvider32ITcUnknownGetUniqueIdHRESULT32idUDINT32FB_TcSourceInfo3008I_TcSourceInfonIdUDINT327936378479363832sNameSTRING(255)20487936386479363888ExtendNameBOOL8sExtensionSTRING(255)2048__getipDataITcSourceInfo64ipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32nIdUDINT32propertymonitoringcallResetToDefaultHRESULT32Clear__setnIdnIdUDINT32monitoringcallpropertymonitoringcall__setguidguidGUID128propertyEqualsToBOOL8ipOtherI_TcSourceInfo64__getguidGUID128guidGUID128property__getsNameSTRING(255)2048sNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__setsNamesNameSTRING(255)2048monitoringcallTcEncodingUTF-8propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockno_explicit_calldo not call this POU directlyFB_TcEventBase4096I_ArgumentsChangeListenerfbSourceInfoFB_TcSourceInfo3008512conditionalshow__REQUESTEVENTCLASSNAME__FBRESULTFB_AsyncStrResult1283712conditionalshow__REQUESTEVENTCLASSNAME__BBUSYBOOL83840conditionalshow__REQUESTEVENTTEXT__FBRESULTFB_AsyncStrResult1283904conditionalshow__REQUESTEVENTTEXT__BBUSYBOOL84032conditionalshoweSeverityTcEventSeverity1679364088ipSourceInfoI_TcSourceInfo6479364048nEventIdUDINT3279364224nUniqueIdUDINT3279364232sEventClassNameSTRING(255)204879364144sEventTextSTRING(255)204879364240EqualsToEventClassBOOL8OtherEventClassGUID128_EventClassGUID128GetEventClassNameHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32ReleaseHRESULT32UpdateLangId__getipSourceInfoI_TcSourceInfo64ipSourceInfoI_TcSourceInfo64propertymonitoringcallEqualsToBOOL8ipOtherI_TcEventBase64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshow__getEventClassGUID128EventClassGUID128ipTmpEventITcEvent64property__geteSeverityTcEventSeverity16eSeverityTcEventSeverity16ipTmpEventITcEvent64propertymonitoringcall__getstEventEntryTcEventEntry192stEventEntryTcEventEntry192propertyOnCreateHRESULT32EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16RequestEventTextBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTTEXT__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTTEXT__BBUSYOnArgumentsChanged__getsEventClassNameSTRING(255)2048sEventClassNameSTRING(255)2048propertymonitoringcallTcEncodingUTF-8__getipArgumentsI_TcArguments64ipArgumentsI_TcArguments64propertyGetEventTextHRESULT32nLangIdDINT32fbResultFB_AsyncStrResult64ItemTypeInOutipTmpEventITcEvent64ipResultITcAsyncStringResult64hrHRESULT32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32ipTmpEventITcEvent64RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputfbResultFB_AsyncStrResult128uselocation__REQUESTEVENTCLASSNAME__FBRESULTbBusyBOOL8uselocation__REQUESTEVENTCLASSNAME__BBUSYEqualsToEventEntryExBOOL8stOtherTcEventEntry192__getnEventIdUDINT32nEventIdUDINT32ipTmpEventITcEvent64propertymonitoringcall__getnUniqueIdUDINT32nUniqueIdUDINT32ipTmpEventITcEvent64ipProviderITcEventUniqueIdProvider64propertymonitoringcall__getsEventTextSTRING(255)2048sEventTextSTRING(255)2048propertymonitoringcallTcEncodingUTF-8PouTypeFunctionBlockconditionalshow_all_localsno_explicit_calldo not call this POU directlyI_TcMessage64I_TcEventBaseSendHRESULT32nTimeStampULINT64ITcMessage32ITcEventSetJsonAttributeHRESULT32sJsonAttributePCCH32GetArgumentsHRESULT32pipArgumentsITcArguments32SendHRESULT32timeStampULINT64ITcMessage232ITcMessageGetTimeSentHRESULT32timeStampULINT32FB_TcMessage4224FB_TcEventBaseI_TcMessagenTimeSentULINT6479364288SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64InitipMessageITcMessage64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getnTimeSentULINT64nTimeSentULINT64ipMessage2ITcMessage264nTimeStampULINT64propertymonitoringcallTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshowSendHRESULT32nTimeStampULINT64ReleaseHRESULT32PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyF_TRIG + + + + + sPath + STRING(80) + Required for other devices using this gauge as interlock + 648 + 368 + + + rFULL_SCALE + REAL + Full scale pressure in Torr for baratron pressure conversion + 32 + 1024 + + 1000 + + + + + FW_GetCurTaskIndex + 96 + + nIndex + BYTE + 8 + 64 + + + ItemType + Output + + + + + + PouType + FunctionBlock + + + conditionalshow + + + + + GETCURTASKINDEX + This function block GETCURTASKINDEX finds the task index of the task from which it is called. + 256 + + index + BYTE + Returns the current task index of the calling task. + 8 + 64 + + + ItemType + Output + + + + + fbGetCurTaskIndex + FW_GetCurTaskIndex + 96 + 128 + + + conditionalshow + + + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + + + PlcTaskSystemInfo + 1024 + + ObjId + OTCID + 32 + 0 + + + CycleTime + UDINT + 32 + 32 + + + Priority + UINT + 16 + 64 + + + AdsPort + UINT + 16 + 80 + + + CycleCount + UDINT + 32 + 96 + + + DcTaskTime + LINT + 64 + 128 + + + LastExecTime + UDINT + 32 + 192 + + + FirstCycle + BOOL + 8 + 224 + + + CycleTimeExceeded + BOOL + 8 + 232 + + + InCallAfterOutputUpdate + BOOL + 8 + 240 + + + RTViolation + BOOL + 8 + 248 + + + TaskName + STRING(63) + 512 + 512 + + + + + + + + ST_LibVersion + 288 + + iMajor + UINT + 16 + 0 + + + iMinor + UINT + 16 + 16 + + + iBuild + UINT + 16 + 32 + + + iRevision + UINT + 16 + 48 + + + nFlags + DWORD + 32 + 64 + + + sVersion + STRING(23) + 192 + 96 + + + + T_MaxString + TwinCAT PLC string of max. length of 255 bytes + 1 byte null delimiter. + 2048 + STRING(255) + + + TcEventSeverity + 16 + INT + + TCEVENTSEVERITY_Verbose + 0 + + + TCEVENTSEVERITY_Info + 1 + + + TCEVENTSEVERITY_Warning + 2 + + + TCEVENTSEVERITY_Error + 3 + + + TCEVENTSEVERITY_Critical + 4 + + + + plcAttribute_qualified_only + + + plcAttribute_strict + + + + + + + + + E_Subsystem + 16 + WORD + + NILVALUE + 0 + Undefined system + + + VACUUM + 1 + Vacuum control system + + + MPS + 2 + Machine protection system + + + MOTION + 3 + Motion control systems + + + FIELDBUS + 4 + EtherCAT networks + + + SDS + 5 + Sample delivery system + + + OPTICS + 6 + Optics control system + + + + I_ArgumentsChangeListener + 64 + PVOID + + OnArgumentsChanged + + + + ITcAsyncResult + 32 + ITcUnknown + + GetIsBusy + HRESULT + 32 + + bIsBusy + BOOL32 + 32 + + + + GetHasError + HRESULT + 32 + + bError + BOOL32 + 32 + + + + GetErrorCode + HRESULT + 32 + + hresult + HRESULT + 32 + + + + + FB_AsyncStrResult + 128 + + bBusy + BOOL + 8 + 79363904 + + + bError + BOOL + 8 + 79363976 + + + hrErrorCode + HRESULT + 32 + 79363992 + + + nStringSize + UDINT + 32 + 79363952 + + + sResult + STRING(255) + 2048 + 79363984 + + + __getbBusy + BOOL + 8 + + bBusy + BOOL + 8 + + + b32IsBusy + BOOL32 + 32 + + + + property + + + monitoring + call + + + + + Init + + ipResult + ITcAsyncStringResult + 64 + + + + conditionalshow + + + + + GetString + BOOL + 8 + + sResult + STRING(80) + 64 + + + nResult + buffer size in bytes + UDINT + 32 + + + + __getnStringSize + UDINT + 32 + + nStringSize + UDINT + 32 + + + pEmpty + STRING(80) + 64 + + + + property + + + monitoring + call + + + + + Clear + + + __getbError + BOOL + 8 + + bError + BOOL + 8 + + + b32HasError + BOOL32 + 32 + + + + property + + + monitoring + call + + + + + __getsResult + STRING(255) + 2048 + + sResult + STRING(255) + 2048 + + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + __gethrErrorCode + HRESULT + 32 + + hrErrorCode + HRESULT + 32 + + + hrError + HRESULT + 32 + + + + property + + + monitoring + call + + + + + + PouType + FunctionBlock + + + enable_dynamic_creation + + + conditionalshow_all_locals + + + no_explicit_call + do not call this POU directly + + + + + TcSourceInfoType + 32 + UDINT + + Undefined + 0 + + + Id + 1 + + + Guid + 2 + + + Name + 4 + + + + plcAttribute_qualified_only + + + plcAttribute_strict + + + + + + + + TcSerializedSourceInfoType + 96 + + eType + TcSourceInfoType + 32 + 0 + + + obData + UDINT + 32 + 32 + + + cbData + UDINT + 32 + 64 + + + + ITcSourceInfo + 32 + ITcUnknown + + GetNumTypes + HRESULT + 32 + + nCount + UDINT + 32 + + + + GetTypes + HRESULT + 32 + + ppSourceInfoTypes + TcSerializedSourceInfoType + 32 + + + + GetDataSize + HRESULT + 32 + + cbData + UDINT + 32 + + + + GetData + HRESULT + 32 + + ppData + PVOID + 32 + + + + + ITcEvent + 32 + ITcUnknown + + GetEventClass + HRESULT + 32 + + eventClass + GUID + 32 + + + + GetEventId + HRESULT + 32 + + eventId + UDINT + 32 + + + + GetSeverity + HRESULT + 32 + + severity + TcEventSeverity + 32 + + + + GetSourceInfo + HRESULT + 32 + + pipSourceInfo + ITcSourceInfo + 32 + + + + GetJsonAttribute + HRESULT + 32 + + sJsonAttribute + STRING(80) + 32 + + + nJsonAttribute + UDINT + 32 + + + + GetText + HRESULT + 32 + + nLangId + DINT + 32 + + + pipResult + ITcAsyncStringResult + 32 + + + + GetEventClassName + HRESULT + 32 + + nLangId + DINT + 32 + + + pipResult + ITcAsyncStringResult + 32 + + + + + I_TcSourceInfo + 64 + PVOID + + __getguid + GUID + 128 + + + property + + + + + __getipData + ITcSourceInfo + 64 + + + property + + + conditionalshow + + + + + __getnId + UDINT + 32 + + + property + + + monitoring + call + + + + + __getsName + STRING(255) + 2048 + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + EqualsTo + BOOL + 8 + + ipOther + I_TcSourceInfo + 64 + + + + + TcEventEntry + 192 + + uuidEventClass + GUID + 128 + 0 + + + nEventId + UDINT + 32 + 128 + + + eSeverity + TcEventSeverity + 16 + 160 + + + + I_TcEventBase + 64 + PVOID + + __geteSeverity + TcEventSeverity + 16 + + + property + + + monitoring + call + + + + + __getEventClass + GUID + 128 + + + property + + + + + __getipSourceInfo + I_TcSourceInfo + 64 + + + property + + + monitoring + call + + + + + __getnEventId + UDINT + 32 + + + property + + + monitoring + call + + + + + __getsEventClassName + STRING(255) + 2048 + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + __getsEventText + STRING(255) + 2048 + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + __getstEventEntry + TcEventEntry + 192 + + + property + + + + + EqualsTo + BOOL + 8 + + ipOther + I_TcEventBase + 64 + + + + EqualsToEventClass + BOOL + 8 + + OtherEventClass + GUID + 128 + + + + EqualsToEventEntry + BOOL + 8 + + OtherEventClass + GUID + 128 + + + nOtherEventID + UDINT + 32 + + + eOtherSeverity + TcEventSeverity + 16 + + + + EqualsToEventEntryEx + BOOL + 8 + + stOther + TcEventEntry + 192 + + + + GetJsonAttribute + HRESULT + 32 + + sJsonAttribute + STRING(80) + 64 + + + nJsonAttribute + UDINT + 32 + + + + RequestEventClassName + BOOL + 8 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + sResult + buffer for result text + STRING(80) + 64 + + + nResultSize + size of buffer in bytes + UDINT + 32 + + + bError + BOOL + 8 + + + ItemType + Output + + + + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + + RequestEventText + BOOL + 8 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + sResult + buffer for result text + STRING(80) + 64 + + + nResultSize + size of buffer in bytes + UDINT + 32 + + + bError + BOOL + 8 + + + ItemType + Output + + + + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + + + IQueryInterface + 64 + PVOID + + __GetInterfacePointer + BOOL + 8 + + pRef + DWORD + 64 + + + + __GetInterfaceReference + BOOL + 8 + + nInterfaceId + DINT + 32 + + + pRef + DWORD + 64 + + + + + TcEventArgumentType + 16 + INT + + Undefined + 0 + + + Boolean + 1 + + + Int8 + 2 + + + Int16 + 3 + + + Int32 + 4 + + + Int64 + 5 + + + UInt8 + 6 + + + UInt16 + 7 + + + UInt32 + 8 + + + UInt64 + 9 + + + Float + 10 + + + Double + 11 + + + Char + 12 + + + WChar + 13 + + + StringType + 14 + + + WStringType + 15 + + + EventReference + 16 + + + FormatString + 17 + + + ExternalTimestamp + 18 + + + Blob + 19 + + + + plcAttribute_qualified_only + + + plcAttribute_strict + + + + + + + + ITcArguments + 32 + ITcUnknown + + Count + HRESULT + 32 + + nCount + UDINT + 32 + + + + AddArgument + HRESULT + 32 + + eType + TcEventArgumentType + 16 + + + pData + PVOID + 32 + + + cbData + UDINT + 32 + + + + Get + HRESULT + 32 + + nIndex + UDINT + 32 + + + eType + TcEventArgumentType + 32 + + + ppData + PVOID + 32 + + + + Clear + HRESULT + 32 + + + GetArgumentTypes + HRESULT + 32 + + pArgumentTypes + TcEventArgumentType + 32 + + + + GetDataSize + HRESULT + 32 + + cbData + UDINT + 32 + + + + GetData + HRESULT + 32 + + pData + BYTE + 32 + + + + + I_TcArguments + 64 + IQueryInterface + + __getipData + ITcArguments + 64 + + + property + + + conditionalshow + + + + + __getnCount + UDINT + 32 + + + property + + + + + AddBlob + I_TcArguments + 64 + + pData + PVOID + 64 + + + cbData + UINT + 16 + + + + AddBool + I_TcArguments + 64 + + value + BOOL + 8 + + + + AddByte + I_TcArguments + 64 + + value + BYTE + 8 + + + + AddDInt + I_TcArguments + 64 + + value + DINT + 32 + + + + AddDWord + I_TcArguments + 64 + + value + DWORD + 32 + + + + AddEventReferenceEx + I_TcArguments + 64 + + stEventEntry + TcEventEntry + 192 + + + + AddEventReferenceId + I_TcArguments + 64 + + nEventId + UDINT + 32 + + + + AddEventReferenceIdGuid + I_TcArguments + 64 + + nEventId + UDINT + 32 + + + EventClass + GUID + 128 + + + + AddInt + I_TcArguments + 64 + + value + INT + 16 + + + + AddLInt + I_TcArguments + 64 + + value + LINT + 64 + + + + AddLReal + I_TcArguments + 64 + + value + LREAL + 64 + + + + AddReal + I_TcArguments + 64 + + value + REAL + 32 + + + + AddSInt + I_TcArguments + 64 + + value + SINT + 8 + + + + AddString + I_TcArguments + 64 + + value + STRING(80) + 64 + + + ItemType + InOut + + + + + + AddStringByValue + I_TcArguments + 64 + + value + T_MaxString + 2048 + + + + AddUDInt + I_TcArguments + 64 + + value + UDINT + 32 + + + + AddUInt + I_TcArguments + 64 + + value + UINT + 16 + + + + AddULInt + I_TcArguments + 64 + + value + ULINT + 64 + + + + AddUSInt + I_TcArguments + 64 + + value + USINT + 8 + + + + AddUtf8EncodedString + I_TcArguments + 64 + + value + STRING(80) + 64 + + + ItemType + InOut + + + + + + AddWord + I_TcArguments + 64 + + value + WORD + 16 + + + + AddWString + I_TcArguments + 64 + + value + WSTRING(80) + 64 + + + ItemType + InOut + + + + + + AddWStringByValue + I_TcArguments + 64 + + value + WSTRING(255) + 4096 + + + + Clear + I_TcArguments + 64 + + + + ITcEventUniqueIdProvider + 32 + ITcUnknown + + GetUniqueId + HRESULT + 32 + + id + UDINT + 32 + + + + + FB_TcSourceInfo + 3008 + I_TcSourceInfo + + nId + UDINT + 32 + 79363784 + 79363832 + + + sName + STRING(255) + 2048 + 79363864 + 79363888 + + + ExtendName + BOOL + 8 + + sExtension + STRING(255) + 2048 + + + + __getipData + ITcSourceInfo + 64 + + ipData + ITcSourceInfo + 64 + + + + property + + + conditionalshow + + + + + __getnId + UDINT + 32 + + nId + UDINT + 32 + + + + property + + + monitoring + call + + + + + ResetToDefault + HRESULT + 32 + + + Clear + + + __setnId + + nId + UDINT + 32 + + + monitoring + call + + + + + + property + + + monitoring + call + + + + + __setguid + + guid + GUID + 128 + + + + property + + + + + EqualsTo + BOOL + 8 + + ipOther + I_TcSourceInfo + 64 + + + + __getguid + GUID + 128 + + guid + GUID + 128 + + + + property + + + + + __getsName + STRING(255) + 2048 + + sName + STRING(255) + 2048 + + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + __setsName + + sName + STRING(255) + 2048 + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + + PouType + FunctionBlock + + + no_explicit_call + do not call this POU directly + + + + + FB_TcEventBase + 4096 + I_ArgumentsChangeListener + + fbSourceInfo + FB_TcSourceInfo + 3008 + 512 + + + conditionalshow + + + + + __REQUESTEVENTCLASSNAME__FBRESULT + FB_AsyncStrResult + 128 + 3712 + + + conditionalshow + + + + + __REQUESTEVENTCLASSNAME__BBUSY + BOOL + 8 + 3840 + + + conditionalshow + + + + + __REQUESTEVENTTEXT__FBRESULT + FB_AsyncStrResult + 128 + 3904 + + + conditionalshow + + + + + __REQUESTEVENTTEXT__BBUSY + BOOL + 8 + 4032 + + + conditionalshow + + + + + eSeverity + TcEventSeverity + 16 + 79364088 + + + ipSourceInfo + I_TcSourceInfo + 64 + 79364048 + + + nEventId + UDINT + 32 + 79364224 + + + nUniqueId + UDINT + 32 + 79364232 + + + sEventClassName + STRING(255) + 2048 + 79364144 + + + sEventText + STRING(255) + 2048 + 79364240 + + + EqualsToEventClass + BOOL + 8 + + OtherEventClass + GUID + 128 + + + _EventClass + GUID + 128 + + + + GetEventClassName + HRESULT + 32 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + fbResult + FB_AsyncStrResult + 64 + + + ItemType + InOut + + + + + ipTmpEvent + ITcEvent + 64 + + + ipResult + ITcAsyncStringResult + 64 + + + hr + HRESULT + 32 + + + + Release + HRESULT + 32 + + + UpdateLangId + + + __getipSourceInfo + I_TcSourceInfo + 64 + + ipSourceInfo + I_TcSourceInfo + 64 + + + + property + + + monitoring + call + + + + + EqualsTo + BOOL + 8 + + ipOther + I_TcEventBase + 64 + + + + __getipEvent + ITcEvent + 64 + + ipEvent + ITcEvent + 64 + + + + property + + + conditionalshow + + + + + __getEventClass + GUID + 128 + + EventClass + GUID + 128 + + + ipTmpEvent + ITcEvent + 64 + + + + property + + + + + __geteSeverity + TcEventSeverity + 16 + + eSeverity + TcEventSeverity + 16 + + + ipTmpEvent + ITcEvent + 64 + + + + property + + + monitoring + call + + + + + __getstEventEntry + TcEventEntry + 192 + + stEventEntry + TcEventEntry + 192 + + + + property + + + + + OnCreate + HRESULT + 32 + + + EqualsToEventEntry + BOOL + 8 + + OtherEventClass + GUID + 128 + + + nOtherEventID + UDINT + 32 + + + eOtherSeverity + TcEventSeverity + 16 + + + + RequestEventText + BOOL + 8 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + sResult + buffer for result text + STRING(80) + 64 + + + nResultSize + size of buffer in bytes + UDINT + 32 + + + bError + BOOL + 8 + + + ItemType + Output + + + + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + fbResult + FB_AsyncStrResult + 128 + + + uselocation + __REQUESTEVENTTEXT__FBRESULT + + + + + bBusy + BOOL + 8 + + + uselocation + __REQUESTEVENTTEXT__BBUSY + + + + + + OnArgumentsChanged + + + __getsEventClassName + STRING(255) + 2048 + + sEventClassName + STRING(255) + 2048 + + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + __getipArguments + I_TcArguments + 64 + + ipArguments + I_TcArguments + 64 + + + + property + + + + + GetEventText + HRESULT + 32 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + fbResult + FB_AsyncStrResult + 64 + + + ItemType + InOut + + + + + ipTmpEvent + ITcEvent + 64 + + + ipResult + ITcAsyncStringResult + 64 + + + hr + HRESULT + 32 + + + + GetJsonAttribute + HRESULT + 32 + + sJsonAttribute + STRING(80) + 64 + + + nJsonAttribute + UDINT + 32 + + + ipTmpEvent + ITcEvent + 64 + + + + RequestEventClassName + BOOL + 8 + + nLangId + English(US)=1033 ; German(Germay)=1031 + DINT + 32 + + + sResult + buffer for result text + STRING(80) + 64 + + + nResultSize + size of buffer in bytes + UDINT + 32 + + + bError + BOOL + 8 + + + ItemType + Output + + + + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + fbResult + FB_AsyncStrResult + 128 + + + uselocation + __REQUESTEVENTCLASSNAME__FBRESULT + + + + + bBusy + BOOL + 8 + + + uselocation + __REQUESTEVENTCLASSNAME__BBUSY + + + + + + EqualsToEventEntryEx + BOOL + 8 + + stOther + TcEventEntry + 192 + + + + __getnEventId + UDINT + 32 + + nEventId + UDINT + 32 + + + ipTmpEvent + ITcEvent + 64 + + + + property + + + monitoring + call + + + + + __getnUniqueId + UDINT + 32 + + nUniqueId + UDINT + 32 + + + ipTmpEvent + ITcEvent + 64 + + + ipProvider + ITcEventUniqueIdProvider + 64 + + + + property + + + monitoring + call + + + + + __getsEventText + STRING(255) + 2048 + + sEventText + STRING(255) + 2048 + + + + property + + + monitoring + call + + + TcEncoding + UTF-8 + + + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + no_explicit_call + do not call this POU directly + + + + + I_TcMessage + 64 + I_TcEventBase + + Send + HRESULT + 32 + + nTimeStamp + ULINT + 64 + + + + + ITcMessage + 32 + ITcEvent + + SetJsonAttribute + HRESULT + 32 + + sJsonAttribute + PCCH + 32 + + + + GetArguments + HRESULT + 32 + + pipArguments + ITcArguments + 32 + + + + Send + HRESULT + 32 + + timeStamp + ULINT + 64 + + + + + ITcMessage2 + 32 + ITcMessage + + GetTimeSent + HRESULT + 32 + + timeStamp + ULINT + 32 + + + + + FB_TcMessage + 4224 + FB_TcEventBase + I_TcMessage + + nTimeSent + ULINT + 64 + 79364288 + + + SetJsonAttribute + HRESULT + 32 + + sJsonAttribute + STRING(80) + 64 + + + ItemType + InOut + + + + + + CreateEx + HRESULT + 32 + + stEventEntry + TcEventEntry + 192 + + + ipSourceInfo + optional (otherwise a default source info is taken) + I_TcSourceInfo + 64 + + + + Init + + ipMessage + ITcMessage + 64 + + + ipArguments + ITcArguments + 64 + + + ipSourceInfo + ITcSourceInfo + 64 + + + + conditionalshow + + + + + __getnTimeSent + ULINT + 64 + + nTimeSent + ULINT + 64 + + + ipMessage2 + ITcMessage2 + 64 + + + nTimeStamp + ULINT + 64 + + + + property + + + monitoring + call + + + TcDisplayTypeGUID + 18071995-0000-0000-0000-000000000046 + + + + + Create + HRESULT + 32 + + eventClass + GUID + 128 + + + nEventId + UDINT + 32 + + + eSeverity + TcEventSeverity + 16 + + + ipSourceInfo + optional (otherwise a default source info is taken) + I_TcSourceInfo + 64 + + + hr + HRESULT + 32 + + + ipArguments + ITcArguments + 64 + + + + __getipEvent + ITcEvent + 64 + + ipEvent + ITcEvent + 64 + + + + property + + + conditionalshow + + + + + Send + HRESULT + 32 + + nTimeStamp + set 0 to get the current time automatically + ULINT + 64 + + + + Release + HRESULT + 32 + + + + PouType + FunctionBlock + + + reflection + + + conditionalshow_all_locals + + + no_explicit_call + do not call this POU directly + + + + + F_TRIG + Falling Edge detection. -]]>96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL8801conditionalshowPouTypeFunctionBlockconditionalshow_all_localsR_TRIG + 96 + + CLK + BOOL + signal to detect + 8 + 64 + + + ItemType + Input + + + + + Q + BOOL + falling edge at signal detected + 8 + 72 + + + ItemType + Output + + + + + M + BOOL + 8 + 80 + + 1 + + + + conditionalshow + + + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + + + R_TRIG + Rising Edge detection. -]]>96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL880conditionalshowPouTypeFunctionBlockconditionalshow_all_localsFB_LogMessage86016sMsgT_MaxString204864ItemTypeInputeSevrTcEventSeverity1621120ItemTypeInputeSubsystemE_Subsystem162128ItemTypeInputsJsonSTRING(7000)560082144{}ItemTypeInputnMinTimeViolationAcceptableINT16581605ItemTypeInputnLocalTripThresholdTIME32581761ItemTypeInputnTrickleTripThresholdTIME> LocalTripThreshold]]>3258208100ItemTypeInputnTripResetPeriodTIME3258240600000ItemTypeInputbEnableAutoResetBOOL8582721ItemTypeInputbInitializedBOOL8582800bInitFailedBOOL8582880sSubsystemSourceSTRING(80)64858296fbMessageFB_TcMessage6458944fbMessagesFB_TcMessage052112059008fbSourceFB_TcSourceInfo300880128ipResultMessageI_TcMessage6483136hrHRESULT3283200hrLastInternalErrorHRESULT3283232eTraceLevelTcEventSeverity16832640bFirstCallBOOL8832801sPathT_MaxString204883288instance-pathnoinitnTimesViolatedINT1685344LastCallTimeULINT6485376CurrentCallTimeULINT6485440DeltaSinceLastCallULINT6485504WhenTripsClearedULINT6485568ftTrippedReleasedF_TRIG9685632bLocalTrickleTrippedBOOL885728bLocalTrippedBOOL885736bTrippedBOOL885744pytmc + + 96 + + CLK + BOOL + Signal to detect + 8 + 64 + + + ItemType + Input + + + + + Q + BOOL + rising edge at signal detected + 8 + 72 + + + ItemType + Output + + + + + M + BOOL + 8 + 80 + + + conditionalshow + + + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + + + FB_LogMessage + 86016 + + sMsg + T_MaxString + Message to send + 2048 + 64 + + + ItemType + Input + + + + + eSevr + TcEventSeverity + 16 + 2112 + + 0 + + + + ItemType + Input + + + + + eSubsystem + E_Subsystem + Subsystem + 16 + 2128 + + + ItemType + Input + + + + + sJson + STRING(7000) + JSON to add to the message + 56008 + 2144 + + {} + + + + ItemType + Input + + + + + nMinTimeViolationAcceptable + INT + How many times the min. time can be violated before the CB trips + 16 + 58160 + + 5 + + + + ItemType + Input + + + + + nLocalTripThreshold + TIME + Minimum time between calls allowed, pairs with nMinTimeViolationAcceptable + 32 + 58176 + + 1 + + + + ItemType + Input + + + + + nTrickleTripThreshold + TIME + Trickle trip, activated by global threshold, should be >> LocalTripThreshold + 32 + 58208 + + 100 + + + + ItemType + Input + + + + + nTripResetPeriod + TIME + Time for auto-reset + 32 + 58240 + + 600000 + + + + ItemType + Input + + + + + bEnableAutoReset + BOOL + Enable circuit breaker auto-reset (true by default) + 8 + 58272 + + 1 + + + + ItemType + Input + + + + + bInitialized + BOOL + 8 + 58280 + + 0 + + + + bInitFailed + BOOL + 8 + 58288 + + 0 + + + + sSubsystemSource + STRING(80) + 648 + 58296 + + + fbMessage + FB_TcMessage + 64 + 58944 + + + fbMessages + FB_TcMessage + + 0 + 5 + + 21120 + 59008 + + + fbSource + FB_TcSourceInfo + 3008 + 80128 + + + ipResultMessage + I_TcMessage + 64 + 83136 + + + hr + HRESULT + 32 + 83200 + + + hrLastInternalError + HRESULT + 32 + 83232 + + + eTraceLevel + TcEventSeverity + 16 + 83264 + + 0 + + + + bFirstCall + BOOL + 8 + 83280 + + 1 + + + + sPath + T_MaxString + 2048 + 83288 + + + instance-path + + + noinit + + + + + nTimesViolated + INT + //////////////////////////// + 16 + 85344 + + + LastCallTime + ULINT + 64 + 85376 + + + CurrentCallTime + ULINT + 64 + 85440 + + + DeltaSinceLastCall + ULINT + 64 + 85504 + + + WhenTripsCleared + ULINT + 64 + 85568 + + + ftTrippedReleased + F_TRIG + 96 + 85632 + + + bLocalTrickleTripped + BOOL + 8 + 85728 + + + bLocalTripped + BOOL + 8 + 85736 + + + bTripped + BOOL + Won't emit messages if true + 8 + 85744 + + + pytmc + pv: Tripped io: i field: DESC Log message FB tripped - bResetBreakerBOOL885752pytmc + + + + + + bResetBreaker + BOOL + 8 + 85752 + + + pytmc + pv: Reset io: o field: DESC Rising-edge reset of trip - rtResetBreakerR_TRIG9685760rtTrippedR_TRIG9685888CircuitBreakerPouTypeFunctionBlockreflectionT_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232E_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType1600cbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINT + + + + + rtResetBreaker + R_TRIG + 96 + 85760 + + + rtTripped + R_TRIG + 96 + 85888 + + + CircuitBreaker + + + + PouType + FunctionBlock + + + reflection + + + + + T_ULARGE_INTEGER + 64 bit unsigned integer + 64 + + dwLowPart + DWORD + Lower double word + 32 + 0 + + + dwHighPart + DWORD + Higher double word + 32 + 32 + + + + E_WATCHDOG_TIME_CONFIG + 16 + INT + + eWATCHDOG_TIME_DISABLED + 0 + + + eWATCHDOG_TIME_SECONDS + 1 + + + eWATCHDOG_TIME_MINUTES + 2 + + + + E_HashPrefixTypes + 16 + INT + + HASHPREFIX_IEC + 0 + 2#, 8#, 16# + + + HASHPREFIX_STDC + 1 + 0 for octal type, 0x, 0X for hex else none + + + + E_SBCSType + 16 + INT + + eSBCS_WesternEuropean + 1 + Windows 1252 (default) + + + eSBCS_CentralEuropean + 2 + Windows 1251 + + + + T_AmsNetID + TwinCAT AMS netID address string. + 192 + STRING(23) + + + E_RouteTransportType + 16 + UINT + + eRouteTransport_None + 0 + + + eRouteTransport_TCP_IP + 1 + + + eRouteTransport_IIO_LIGHTBUS + 2 + + + eRouteTransport_PROFIBUS_DP + 3 + + + eRouteTransport_PCI_ISA_BUS + 4 + + + eRouteTransport_ADS_UDP + 5 + + + eRouteTransport_FATP_UDP + 6 + + + eRouteTransport_COM_PORT + 7 + + + eRouteTransport_USB + 8 + + + eRouteTransport_CAN_OPEN + 9 + + + eRouteTransport_DEVICE_NET + 10 + + + eRouteTransport_SSB + 11 + + + eRouteTransport_SOAP + 12 + + + + ST_AmsRouteEntry + TwinCAT AMS route entry struct + 1184 + + sName + STRING(31) + String containing route name + 256 + 0 + + + sNetID + T_AmsNetID + TwinCAT network address (ams net id) + 192 + 256 + + + sAddress + STRING(79) + String containing route network Ipv4 address or host name. + 640 + 448 + + + eTransport + E_RouteTransportType + Route transport type + 16 + 1088 + + + tTimeout + TIME + Route timeout + 32 + 1120 + + + dwFlags + DWORD + Additional flags + 32 + 1152 + + + + E_ArgType + 16 + INT + + ARGTYPE_UNKNOWN + 0 + + + ARGTYPE_BYTE + 1 + + + ARGTYPE_WORD + 2 + + + ARGTYPE_DWORD + 3 + + + ARGTYPE_REAL + 4 + + + ARGTYPE_LREAL + 5 + + + ARGTYPE_SINT + 6 + + + ARGTYPE_INT + 7 + + + ARGTYPE_DINT + 8 + + + ARGTYPE_USINT + 9 + + + ARGTYPE_UINT + 10 + + + ARGTYPE_UDINT + 11 + + + ARGTYPE_STRING + 12 + string of type T_MaxString! + + + ARGTYPE_BOOL + 13 + + + ARGTYPE_BIGTYPE + 14 + byte buffer + + + ARGTYPE_ULARGE + 15 + unsigned 64 bit ingeger (T_ULARGE_INTEGER, ULINT) + + + ARGTYPE_UHUGE + 16 + unsigned 128 bit integer (T_UHUGE_INTEGER) + + + ARGTYPE_LARGE + 17 + signed 64 bit integer (T_LARGE_INTEGER, LINT) + + + ARGTYPE_HUGE + 18 + signed 128 bit integer (T_HUGE_INTEGER) + + + ARGTYPE_LWORD + 19 + LWORD value + + + + T_Arg + Argument type + 128 + + eType + E_ArgType + Argument data type + 16 + 0 + + 0 + + + + cbLen + UDINT + Argument data byte length (if eType = ARGTYPE_STRING => cbLen = length of string + 1 (null delimiter). + 32 + 32 + + 0 + + + + pData + PVOID + Pointer to first argument data byte + 64 + 64 + + 0 + + + + + TIMESTRUCT + System Time Structure + 128 + + wYear + WORD + Year: 1970..2106 + 16 + 0 + + + wMonth + WORD + Month: 1..12 (January = 1, February = 2 and so on) + 16 + 16 + + + wDayOfWeek + WORD + Day of the week: 0..6 (Sunday = 0, Monday = 1, .. , Saturday = 6 and so on) + 16 + 32 + + + wDay + WORD + Day of the month: 1..31 + 16 + 48 + + + wHour + WORD + Hour: 0..23 + 16 + 64 + + + wMinute + WORD + Minute: 0..59 + 16 + 80 + + + wSecond + WORD + Second: 0..59 + 16 + 96 + + + wMilliseconds + WORD + Milliseconds: 0..999 + 16 + 112 + + + + ST_TimeZoneInformation + 864 + + bias + DINT + Specifies the current bias, in minutes, for local time translation on this computer. The bias is the difference, in minutes, between Coordinated Universal Time (UTC) and local time. - UTC = local time + bias ]]>320standardNameSTRING(31)25632standardDateTIMESTRUCT128288standardBiasDINT32416daylightNameSTRING(31)256448daylightDateTIMESTRUCT128704daylightBiasDINT32832TOF256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder0UpperBorder1000UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder0UpperBorder100E_AssertionType8BYTEType_UNDEFINED0Type_ANY1Type_BOOL2Type_BYTE3Type_DATE4Type_DATE_AND_TIME5Type_DINT6Type_DWORD7Type_INT8Type_LINT9Type_LREAL10Type_LTIME11Type_LWORD12Type_REAL13Type_SINT14Type_STRING15Type_TIME16Type_TIME_OF_DAY17Type_UDINT18Type_UINT19Type_ULINT20Type_USINT21Type_WORD22Type_WSTRING23Type_Array2D_LREAL24Type_Array2D_REAL25Type_Array3D_LREAL26Type_Array3D_REAL27Type_Array_BOOL28Type_Array_BYTE29Type_Array_DINT30Type_Array_DWORD31Type_Array_INT32Type_Array_LINT33Type_Array_LREAL34Type_Array_LWORD35Type_Array_REAL36Type_Array_SINT37Type_Array_UDINT38Type_Array_UINT39Type_Array_ULINT40Type_Array_USINT41Type_Array_WORD42ST_TestCaseResult6192TestNameT_MaxString20480TestClassNameT_MaxString20482048TestIsFailedBOOL84096TestIsSkippedBOOL84104FailureMessageT_MaxString20484112FailureTypeE_AssertionType86160NumberOfAssertsUINT166176ST_TestSuiteResult621296NameT_MaxString20480IdentityUINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites)162048NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162064NumberOfFailedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)162080TestCaseResultsST_TestCaseResult11006192002096ST_TestSuiteResults621296064NumberOfTestSuitesUINT160NumberOfTestCasesUINT1616NumberOfSuccessfulTestCasesUINT1632NumberOfFailedTestCasesUINT1648TestSuiteResultsST_TestSuiteResult1100062129600064I_TestResults64PVOIDGetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16UINTLowerBorder1UpperBorder1000FB_TestResults621296384I_TestResultsTestSuiteResultsST_TestSuiteResults621296064128StoringTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296192StoringTestSuiteTriggerR_TRIG96621296256StoredTestSuiteResultsBOOL8621296352StoredGeneralTestResultsBOOL8621296360NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16621296368GetAreTestResultsAvailableBOOL8GetTestSuiteResultsST_TestSuiteResults64PouTypeFunctionBlockI_TestResultLogger64PVOIDLogTestSuiteResultsUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100FB_AdsTestResultLogger + 32 + 0 + + + standardName + STRING(31) + Specifies a null-terminated string associated with standard time + on this operating system. + 256 + 32 + + + standardDate + TIMESTRUCT + Specifies a SYSTEMTIME structure that contains a date and local time when the + transition from daylight saving time to standard time occurs on this operating system. + 128 + 288 + + + standardBias + DINT + Specifies a bias value to be used during local time translations that occur during standard time. + 32 + 416 + + + daylightName + STRING(31) + Specifies a null-terminated string associated with daylight saving time on this operating system. + For example, this member could contain "PDT" to indicate Pacific Daylight Time. + 256 + 448 + + + daylightDate + TIMESTRUCT + Specifies a SYSTEMTIME structure that contains a date and local time when the transition + from standard time to daylight saving time occurs on this operating system. + 128 + 704 + + + daylightBias + DINT + Specifies a bias value to be used during local time translations that occur during daylight saving time. + 32 + 832 + + + + TOF + 256 + + IN + BOOL + starts timer with falling edge, resets timer with rising edge + 8 + 64 + + + ItemType + Input + + + + + PT + TIME + time to pass, before Q is set + 32 + 96 + + + ItemType + Input + + + + + Q + BOOL + is FALSE, PT seconds after IN had a falling edge + 8 + 128 + + + ItemType + Output + + + + + ET + TIME + elapsed time + 32 + 160 + + + ItemType + Output + + + + + M + BOOL + 8 + 192 + + + StartTime + TIME + 32 + 224 + + + + PouType + FunctionBlock + + + + + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + UINT + + + LowerBorder + 0 + + + UpperBorder + 1000 + + + + + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + UINT + + + LowerBorder + 0 + + + UpperBorder + 100 + + + + + E_AssertionType + 8 + BYTE + + Type_UNDEFINED + 0 + + + Type_ANY + 1 + + + Type_BOOL + 2 + Primitive types + + + Type_BYTE + 3 + + + Type_DATE + 4 + + + Type_DATE_AND_TIME + 5 + + + Type_DINT + 6 + + + Type_DWORD + 7 + + + Type_INT + 8 + + + Type_LINT + 9 + + + Type_LREAL + 10 + + + Type_LTIME + 11 + + + Type_LWORD + 12 + + + Type_REAL + 13 + + + Type_SINT + 14 + + + Type_STRING + 15 + + + Type_TIME + 16 + + + Type_TIME_OF_DAY + 17 + + + Type_UDINT + 18 + + + Type_UINT + 19 + + + Type_ULINT + 20 + + + Type_USINT + 21 + + + Type_WORD + 22 + + + Type_WSTRING + 23 + + + Type_Array2D_LREAL + 24 + Array types + + + Type_Array2D_REAL + 25 + + + Type_Array3D_LREAL + 26 + + + Type_Array3D_REAL + 27 + + + Type_Array_BOOL + 28 + + + Type_Array_BYTE + 29 + + + Type_Array_DINT + 30 + + + Type_Array_DWORD + 31 + + + Type_Array_INT + 32 + + + Type_Array_LINT + 33 + + + Type_Array_LREAL + 34 + + + Type_Array_LWORD + 35 + + + Type_Array_REAL + 36 + + + Type_Array_SINT + 37 + + + Type_Array_UDINT + 38 + + + Type_Array_UINT + 39 + + + Type_Array_ULINT + 40 + + + Type_Array_USINT + 41 + + + Type_Array_WORD + 42 + + + + ST_TestCaseResult + 6192 + + TestName + T_MaxString + 2048 + 0 + + + TestClassName + T_MaxString + 2048 + 2048 + + + TestIsFailed + BOOL + 8 + 4096 + + + TestIsSkipped + BOOL + 8 + 4104 + + + FailureMessage + T_MaxString + 2048 + 4112 + + + FailureType + E_AssertionType + 8 + 6160 + + + NumberOfAsserts + UINT + 16 + 6176 + + + + ST_TestSuiteResult + 621296 + + Name + T_MaxString + Full class name + 2048 + 0 + + + Identity + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestSuites) + Should be 0..GVL_Param_TcUnit.MaxNumberOfTestSuites-1 but gives unknown compiler error + 16 + 2048 + + + NumberOfTests + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + 2064 + + + NumberOfFailedTests + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + 2080 + + + TestCaseResults + ST_TestCaseResult + + 1 + 100 + + 619200 + 2096 + + + + ST_TestSuiteResults + 621296064 + + NumberOfTestSuites + UINT + The total number of test suites + 16 + 0 + + + NumberOfTestCases + UINT + The total number of test cases (for all test suites) + 16 + 16 + + + NumberOfSuccessfulTestCases + UINT + The total number of test cases that had all ASSERTS successful + 16 + 32 + + + NumberOfFailedTestCases + UINT + The total number of test cases that had at least one ASSERT failed + 16 + 48 + + + TestSuiteResults + ST_TestSuiteResult + + 1 + 1000 + + Test results for each individiual test suite + 621296000 + 64 + + + + I_TestResults + 64 + PVOID + + GetAreTestResultsAvailable + BOOL + 8 + + + GetTestSuiteResults + ST_TestSuiteResults + 64 + + + + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + UINT + + + LowerBorder + 1 + + + UpperBorder + 1000 + + + + + FB_TestResults + This function block holds results of the complete test run, i.e. results for all test suites + 621296384 + I_TestResults + + TestSuiteResults + ST_TestSuiteResults + Test results + 621296064 + 128 + + + StoringTestSuiteResultNumber + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + Misc variables + 16 + 621296192 + + + StoringTestSuiteTrigger + R_TRIG + 96 + 621296256 + + + StoredTestSuiteResults + BOOL + 8 + 621296352 + + + StoredGeneralTestResults + BOOL + 8 + 621296360 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + 621296368 + + + GetAreTestResultsAvailable + BOOL + 8 + + + GetTestSuiteResults + ST_TestSuiteResults + 64 + + + + PouType + FunctionBlock + + + + + I_TestResultLogger + 64 + PVOID + + LogTestSuiteResults + + + + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + UINT + + + LowerBorder + 1 + + + UpperBorder + 100 + + + + + FB_AdsTestResultLogger + This function block reports the results from the tests using the built-in ADSLOGSTR functionality provided by the Tc2_System library. This sends the result using ADS, which is consumed by the "Error List" of Visual Studio (which can print Errors, Warnings and Messages). -]]>384I_TestResultLoggerTestResultsI_TestResults64128PrintingTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16192PrintingTestSuiteTriggerR_TRIG96256PrintedFinalTestResultsBOOL8352PrintedTestSuitesResultsBOOL8360LogTestSuiteResultsTcUnitTestResultsST_TestSuiteResults64StringToPrintT_MaxString2048TestsInTestSuiteCounterUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16MaxNumberOfTestsToPrintUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648PouTypeFunctionBlockRTS_IEC_RESULT32UDINTACCESS_MODE32UDINTAM_READ0AM_WRITE1AM_APPEND2AM_READ_PLUS3AM_WRITE_PLUS4AM_APPEND_PLUS5RTS_IEC_SIZE64BYTERTS_IEC_HANDLE64BYTEFB_FileControl + 384 + I_TestResultLogger + + TestResults + I_TestResults + 64 + 128 + + + PrintingTestSuiteResultNumber + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + 192 + + + PrintingTestSuiteTrigger + R_TRIG + 96 + 256 + + + PrintedFinalTestResults + BOOL + This flag is set once the final end result has printed + 8 + 352 + + + PrintedTestSuitesResults + BOOL + This flag is set once the test suites result have been printed + 8 + 360 + + + LogTestSuiteResults + + TcUnitTestResults + ST_TestSuiteResults + 64 + + + StringToPrint + T_MaxString + 2048 + + + TestsInTestSuiteCounter + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + MaxNumberOfTestsToPrint + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + TEST_STATUS_SKIP + STRING(80) + 648 + + + TEST_STATUS_PASS + STRING(80) + 648 + + + TEST_STATUS_FAIL + STRING(80) + 648 + + + + + PouType + FunctionBlock + + + + + RTS_IEC_RESULT + 32 + UDINT + + + ACCESS_MODE + 32 + UDINT + + AM_READ + 0 + Open an existing file with Read access. If file does not exist, Open fails + + + AM_WRITE + 1 + Create new file with Write access. If file does exist, content is discarded + + + AM_APPEND + 2 + Open an existing file with Append (only write) access. If file does not exist, Open fails + + + AM_READ_PLUS + 3 + Open an existing file with Read/Write access. If file does not exist, Open fails + + + AM_WRITE_PLUS + 4 + Create new file with Read/Write access. If file does exist, content is discarded + + + AM_APPEND_PLUS + 5 + Open an existing file with Append (read/write) access. If file does not exist, Open creates a new file + + + + RTS_IEC_SIZE + 64 + BYTE + + + RTS_IEC_HANDLE + 64 + BYTE + + + FB_FileControl + This functionblock can open, close, read, write and delete files on the local filesystem -]]>192FileAccessModeACCESS_MODE32645FileHandleRTS_IEC_HANDLE64128ReadRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32FileSizeRTS_IEC_SIZE64ItemTypeOutputCloseRTS_IEC_RESULT32OpenRTS_IEC_RESULT32FileNameT_MaxString2048FileAccessModeACCESS_MODE32DeleteRTS_IEC_RESULT32FileNameT_MaxString2048WriteRTS_IEC_RESULT32BufferPointerBYTE64SizeUDINT32PouTypeFunctionBlockE_XmlError8BYTEOk0ErrorMaxBufferLen1ErrorStringLen2Error3FB_StreamBuffer + 192 + + FileAccessMode + ACCESS_MODE + Append_Plus creates the file if it doesn't exist yet. + 32 + 64 + + 5 + + + + FileHandle + RTS_IEC_HANDLE + 64 + 128 + + + Read + RTS_IEC_RESULT + 32 + + BufferPointer + Call with ADR(); + BYTE + 64 + + + Size + Call with SIZEOF(); + UDINT + 32 + + + FileSize + RTS_IEC_SIZE + 64 + + + ItemType + Output + + + + + + Close + RTS_IEC_RESULT + 32 + + + Open + RTS_IEC_RESULT + 32 + + FileName + File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/) + T_MaxString + 2048 + + + FileAccessMode + ACCESS_MODE + 32 + + + + Delete + RTS_IEC_RESULT + 32 + + FileName + File name can contain an absolute or relative path to the file. Path entries must be separated with a forward slash (/) + T_MaxString + 2048 + + + + Write + RTS_IEC_RESULT + 32 + + BufferPointer + Call with ADR(); + BYTE + 64 + + + Size + Call with SIZEOF(); + UDINT + 32 + + + + + PouType + FunctionBlock + + + + + E_XmlError + 8 + BYTE + + Ok + 0 + + + ErrorMaxBufferLen + 1 + + + ErrorStringLen + 2 + + + Error + 3 + + + + FB_StreamBuffer + This functionblock acts as a stream buffer for use with FB_XmlControl -]]>192_PointerToStringBufferBYTE6464_BufferSizeUDINT32128_LengthUDINT32160CutOffT_MaxString2048StartPosUDINT32CutLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCutBYTE64PointerToByteBufferBYTE64FindUDINT32SearchStringSTRING(80)648StartPosUDINT32LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64FindBackUDINT32SearchStringT_MaxString2048LoopUDINT32SearchUDINT32PointerToBufferBYTE64PointerToSearchBYTE64__getLengthUDINT32LengthUDINT32propertyClearCountUDINT32__setAppendAppend + 192 + + _PointerToStringBuffer + BYTE + 64 + 64 + + + _BufferSize + UDINT + 32 + 128 + + + _Length + UDINT + 32 + 160 + + + CutOff + T_MaxString + 2048 + + StartPos + UDINT + 32 + + + CutLen + UDINT + 32 + + + ItemType + Output + + + + + XmlError + E_XmlError + 8 + + + ItemType + Output + + + + + Loop + UDINT + 32 + + + PointerToByteToCut + BYTE + 64 + + + PointerToByteBuffer + BYTE + 64 + + + + Find + UDINT + 32 + + SearchString + STRING(80) + 648 + + + StartPos + UDINT + 32 + + + Loop + UDINT + 32 + + + Search + UDINT + 32 + + + PointerToBuffer + BYTE + 64 + + + PointerToSearch + BYTE + 64 + + + + FindBack + UDINT + 32 + + SearchString + T_MaxString + 2048 + + + Loop + UDINT + 32 + + + Search + UDINT + 32 + + + PointerToBuffer + BYTE + 64 + + + PointerToSearch + BYTE + 64 + + + + __getLength + UDINT + 32 + + Length + UDINT + 32 + + + + property + + + + + Clear + + Count + UDINT + 32 + + + + __setAppend + + Append + Appends a string to the buffer -]]>T_MaxString2048ByteInBYTE64ByteBufferBYTE64property__getBufferSizeUDINT32BufferSizeUDINT32property__setLengthLength + T_MaxString + 2048 + + + ByteIn + BYTE + 64 + + + ByteBuffer + BYTE + 64 + + + + property + + + + + __getBufferSize + UDINT + 32 + + BufferSize + UDINT + 32 + + + + property + + + + + __setLength + + Length + Gets/Sets the current length (in bytes) of the streambuffer -]]>UDINT32propertySetBufferBOOL8PointerToBufferAddressBYTE64SizeOfBufferUDINT32CopyT_MaxString2048StartPosUDINT32EndPosUDINT32CopyLenUDINT32ItemTypeOutputXmlErrorE_XmlError8ItemTypeOutputLoopUDINT32PointerToByteToCopyBYTE64PointerToBufferBYTE64CurPosUDINT32PouTypeFunctionBlockFB_XmlControl + UDINT + 32 + + + + property + + + + + SetBuffer + BOOL + 8 + + PointerToBufferAddress + Set buffer address (ADR ...) + BYTE + 64 + + + SizeOfBuffer + Set buffer size (SIZEOF ...) + UDINT + 32 + + + + Copy + T_MaxString + 2048 + + StartPos + UDINT + 32 + + + EndPos + UDINT + 32 + + + CopyLen + UDINT + 32 + + + ItemType + Output + + + + + XmlError + E_XmlError + 8 + + + ItemType + Output + + + + + Loop + UDINT + 32 + + + PointerToByteToCopy + BYTE + 64 + + + PointerToBuffer + BYTE + 64 + + + CurPos + UDINT + 32 + + + + + PouType + FunctionBlock + + + + + FB_XmlControl + Organizes parsing and composing of XML data. Data can be treated as STRING or char array. Buffer size of file can be set via GVL_Param_TcUnit (xUnitBufferSize) -]]>6016XmlBufferFB_StreamBuffer19264TagListBufferFB_StreamBuffer192256TagsT_MaxString2048448TagListSeekBufferFB_StreamBuffer1922496TagsSeekSTRING(80)6482688TagBufferFB_StreamBuffer1923392TagT_MaxString20483584TagOpenBOOL85632SelectUDINT325664SearchPositionUDINT325696TAG_OPENSTRING(1)165728<TAG_CLOSESTRING(1)165744>END_TAG_CLOSESTRING(2)245760/>SPACESTRING(1)165784 EQUALSSTRING(1)165800=QUOTESTRING(1)165816"BACK_SLASHSTRING(1)165832\FORWARD_SLASHSTRING(1)165848/OPEN_COMMENTSTRING(5)485864<!-- CLOSE_COMMENTSTRING(4)405912 -->TABSTRING(2)245952 CR_LFSTRING(4)405976 -NewParameterNameT_MaxString2048ValueT_MaxString2048NewTagNameT_MaxString2048CloseTagT_MaxString2048ClosedTagT_MaxString2048WriteDocumentHeaderHeaderT_MaxString2048NewCommentCommentT_MaxString2048__getLengthUDINT32LengthUDINT32propertyNewTagDataDataT_MaxString2048SetBufferPointerToBufferBYTE64SizeOfBufferUDINT32ClearBufferToStartBufferPouTypeFunctionBlockFB_xUnitXmlPublisher + 6016 + + XmlBuffer + FB_StreamBuffer + 192 + 64 + + + TagListBuffer + FB_StreamBuffer + 192 + 256 + + + Tags + T_MaxString + 2048 + 448 + + + TagListSeekBuffer + FB_StreamBuffer + 192 + 2496 + + + TagsSeek + STRING(80) + 648 + 2688 + + + TagBuffer + FB_StreamBuffer + 192 + 3392 + + + Tag + T_MaxString + 2048 + 3584 + + + TagOpen + BOOL + 8 + 5632 + + + Select + UDINT + 32 + 5664 + + + SearchPosition + UDINT + 32 + 5696 + + + TAG_OPEN + STRING(1) + 16 + 5728 + + < + + + + TAG_CLOSE + STRING(1) + 16 + 5744 + + > + + + + END_TAG_CLOSE + STRING(2) + 24 + 5760 + + /> + + + + SPACE + STRING(1) + 16 + 5784 + + + + + + EQUALS + STRING(1) + 16 + 5800 + + = + + + + QUOTE + STRING(1) + 16 + 5816 + + " + + + + BACK_SLASH + STRING(1) + 16 + 5832 + + \ + + + + FORWARD_SLASH + STRING(1) + 16 + 5848 + + / + + + + OPEN_COMMENT + STRING(5) + 48 + 5864 + + <!-- + + + + CLOSE_COMMENT + STRING(4) + 40 + 5912 + + --> + + + + TAB + STRING(2) + 24 + 5952 + + + + + + CR_LF + STRING(4) + 40 + 5976 + + + + + + + NewParameter + + Name + T_MaxString + 2048 + + + Value + T_MaxString + 2048 + + + + NewTag + + Name + T_MaxString + 2048 + + + + CloseTag + T_MaxString + 2048 + + ClosedTag + T_MaxString + 2048 + + + + WriteDocumentHeader + + Header + T_MaxString + 2048 + + + + NewComment + + Comment + T_MaxString + 2048 + + + + __getLength + UDINT + 32 + + Length + UDINT + 32 + + + + property + + + + + NewTagData + + Data + T_MaxString + 2048 + + + + SetBuffer + + PointerToBuffer + ADR(..) + BYTE + 64 + + + SizeOfBuffer + SIZEOF(..) + UDINT + 32 + + + + ClearBuffer + + + ToStartBuffer + + + + PouType + FunctionBlock + + + + + FB_xUnitXmlPublisher + Publishes test results into an xUnit compatible Xml file -]]>530944I_TestResultLoggerTestResultsI_TestResults64128AccessModeACCESS_MODE321924FileFB_FileControl192256XmlFB_XmlControl6016448BufferInitialisedBOOL864640BufferBYTE0655355242806472WritingTestSuiteResultNumberUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16530752PublishTriggerR_TRIG96530816DeleteOpenWriteCloseRTS_IEC_RESULT32LogTestSuiteResultsUnitTestResultsST_TestSuiteResults64CurrentSuiteNumberUINT16CurrentTestCountUINT16TEST_STATUS_SKIPSTRING(80)648TEST_STATUS_PASSSTRING(80)648TEST_STATUS_FAILSTRING(80)648InitialisedBOOL8PouTypeFunctionBlockFB_TcUnitRunner + 530944 + I_TestResultLogger + + TestResults + I_TestResults + Dependancy Injection via FB_Init + 64 + 128 + + + AccessMode + ACCESS_MODE + File access mode + 32 + 192 + + 4 + + + + File + FB_FileControl + 192 + 256 + + + Xml + FB_XmlControl + 6016 + 448 + + + BufferInitialised + BOOL + 8 + 6464 + + 0 + + + + Buffer + BYTE + + 0 + 65535 + + 524280 + 6472 + + + WritingTestSuiteResultNumber + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + 530752 + + + PublishTrigger + R_TRIG + 96 + 530816 + + + DeleteOpenWriteClose + RTS_IEC_RESULT + 32 + + + LogTestSuiteResults + + UnitTestResults + ST_TestSuiteResults + 64 + + + CurrentSuiteNumber + UINT + 16 + + + CurrentTestCount + UINT + 16 + + + TEST_STATUS_SKIP + STRING(80) + 648 + + + TEST_STATUS_PASS + STRING(80) + 648 + + + TEST_STATUS_FAIL + STRING(80) + 648 + + + + Initialised + BOOL + 8 + + + + PouType + FunctionBlock + + + + + FB_TcUnitRunner + This function block is responsible for holding track of the tests and executing them. -]]>621828352AllTestSuitesFinishedBOOL8640TestResultsFB_TestResults621296384128AdsTestResultLoggerFB_AdsTestResultLogger384621296512old_input_assignmentsTestResultLoggerI_TestResultLogger64621296896AbortRunningTestSuitesBOOL8621296960xUnitXmlPublisherFB_xUnitXmlPublisher530944621297024old_input_assignmentsXmlTestResultPublisherI_TestResultLogger64621827968__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITEUINT166218280321__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESTOF256621828096AbortRunningTestSuiteTestsRunTestSuiteTestsInSequenceTimeBetweenTestSuitesExecutionTIME32BusyPrintingBOOL8NumberOfTestSuitesFinished + 621828352 + + AllTestSuitesFinished + BOOL + Indication of whether all test suites have reported that they are finished + 8 + 64 + + 0 + + + + TestResults + FB_TestResults + Test result information + 621296384 + 128 + + + AdsTestResultLogger + FB_AdsTestResultLogger + Prints the results to ADS so that Visual Studio can display the results. + This test result formatter can be replaced with something else than ADS + 384 + 621296512 + + + old_input_assignments + + + + + TestResultLogger + I_TestResultLogger + 64 + 621296896 + + + AbortRunningTestSuites + BOOL + If this flag is set, it means that some external event triggered the + request to abort running the test suites + 8 + 621296960 + + + xUnitXmlPublisher + FB_xUnitXmlPublisher + Publishes a xUnit compatible XML file + 530944 + 621297024 + + + old_input_assignments + + + + + XmlTestResultPublisher + I_TestResultLogger + 64 + 621827968 + + + __RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITE + UINT + This variable holds which current test suite is being called, as we are running + each one in a sequence (one by one) + 16 + 621828032 + + 1 + + + + __RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITES + TOF + 256 + 621828096 + + + AbortRunningTestSuiteTests + + + RunTestSuiteTestsInSequence + + TimeBetweenTestSuitesExecution + Time delay between a test suite is finished and the next test suite starts + TIME + 32 + + + BusyPrinting + BOOL + 8 + + + NumberOfTestSuitesFinished + We need to hold a temporary state of the statistics as we don't consider the tests to be completely finished until all test suites have executed completely. The reason we want to do it this way is because a test suite can run over several cycles. Only once all tests - are finished (which might take many cycles), do we gather correct statistics ]]>UINT16CurrentlyRunningTestSuiteUINT16uselocation__RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITETimerBetweenExecutionOfTestSuitesTOF256uselocation__RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITESRunTestSuiteTestsCounterUINT16BusyPrintingBOOL8NumberOfTestSuitesFinished + UINT + 16 + + + CurrentlyRunningTestSuite + This variable holds which current test suite is being called, as we are running + each one in a sequence (one by one) + UINT + 16 + + + uselocation + __RUNTESTSUITETESTSINSEQUENCE__CURRENTLYRUNNINGTESTSUITE + + + + + TimerBetweenExecutionOfTestSuites + TOF + 256 + + + uselocation + __RUNTESTSUITETESTSINSEQUENCE__TIMERBETWEENEXECUTIONOFTESTSUITES + + + + + + RunTestSuiteTests + + Counter + UINT + 16 + + + BusyPrinting + BOOL + 8 + + + NumberOfTestSuitesFinished + We need to hold a temporary state of the statistics as we don't consider the tests to be completely finished until all test suites have executed completely. The reason we want to do it this way is because a test suite can run over several cycles. Only once all tests - are finished (which might take many cycles), do we gather correct statistics ]]>UINT16PouTypeFunctionBlockFB_Test + UINT + 16 + + + + + PouType + FunctionBlock + + + + + FB_Test + This function block holds all data that defines a test. -]]>4224TestNameT_MaxString204864TestIsFinishedBOOL82112TestIsSkippedBOOL82120NumberOfAssertionsUINT162128TestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 4224 + + TestName + T_MaxString + 2048 + 64 + + + TestIsFinished + BOOL + 8 + 2112 + + + TestIsSkipped + BOOL + This is set to true, if test is disabled (by putting the string "disabled_" in front of the test name + 8 + 2120 + + + NumberOfAssertions + UINT + 16 + 2128 + + + TestOrderNumber + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + In which order/sequence relative to the order tests should this test be executed/evaluated. A value of 0 means it is not defined by TEST_ORDERED() but by un-ordered test (TEST()). - A value <> 0 tells in which order this test will be executed/evaluated. The lower the number, the earlier it will execute. ]]>162144TestIsFailedBOOL82160AssertionMessageT_MaxString20482168AssertionTypeE_AssertionType84216GetAssertionTypeE_AssertionType8SetFailedSetNameNameT_MaxString2048GetNameT_MaxString2048SetNumberOfAssertionsNoOfAssertionsUINT16SetTestOrderOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsSkippedBOOL8GetNumberOfAssertionsUINT16SetFinishedBOOL8GetAssertionMessageT_MaxString2048SetSkippedSetAssertionMessageAssertMessageT_MaxString2048SetAssertionTypeAssertTypeE_AssertionType8IsFinishedBOOL8GetTestOrderUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16IsFailedBOOL8PouTypeFunctionBlockUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16UINTLowerBorder1UpperBorder100TYPE_CLASS32DWORDTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38AnyType128pValueBYTE640diSizeDINT3264TypeClassTYPE_CLASS3296linkalwaysE_TypeFieldParam16INTTYPEFIELD_UNKNOWN0TYPEFIELD_B1TYPEFIELD_O2TYPEFIELD_U3TYPEFIELD_C4TYPEFIELD_F5TYPEFIELD_D6TYPEFIELD_S7TYPEFIELD_XU8TYPEFIELD_XL9TYPEFIELD_EU10TYPEFIELD_EL11ST_FormatParameters160bPercentBOOL80bFlagsBOOL88bWidthBOOL816bDotBOOL824bPrecisionBOOL832bTypeBOOL840bAlignBOOL848bSignBOOL856bNullBOOL864bBlankBOOL872bHashBOOL880iWidthINT1696iPrecisionINT16112bWidthAsteriskBOOL8128bPrecisionAsteriskBOOL8136eTypeE_TypeFieldParam16144conditionalshowFB_FormatString8576sFormatT_MaxString204864ItemTypeInputarg1T_Arg1282112ItemTypeInputarg2T_Arg1282240ItemTypeInputarg3T_Arg1282368ItemTypeInputarg4T_Arg1282496ItemTypeInputarg5T_Arg1282624ItemTypeInputarg6T_Arg1282752ItemTypeInputarg7T_Arg1282880ItemTypeInputarg8T_Arg1283008ItemTypeInputarg9T_Arg1283136ItemTypeInputarg10T_Arg1283264ItemTypeInputbErrorBOOL error, FALSE => no error ]]>83392ItemTypeOutputnErrIdUDINT323424ItemTypeOutputsOutT_MaxString20483456ItemTypeOutputpFormatBYTE6455040conditionalshowpOutBYTE6455680conditionalshowiRemOutLenINT165632conditionalshowbValidBOOL85648conditionalshowstFmtST_FormatParameters1605664conditionalshownArrayElemINT165824conditionalshownArgumentUDINT325856conditionalshowparArgsT_Arg1106405888conditionalshowsArgStrT_MaxString20486528conditionalshowPouTypeFunctionBlockconditionalshow_all_localsTypeClass16INTTYPE_BOOL0TYPE_BIT1TYPE_BYTE2TYPE_WORD3TYPE_DWORD4TYPE_LWORD5TYPE_SINT6TYPE_INT7TYPE_DINT8TYPE_LINT9TYPE_USINT10TYPE_UINT11TYPE_UDINT12TYPE_ULINT13TYPE_REAL14TYPE_LREAL15TYPE_STRING16TYPE_WSTRING17TYPE_TIME18TYPE_DATE19TYPE_DATEANDTIME20TYPE_TIMEOFDAY21TYPE_POINTER22TYPE_REFERENCE23TYPE_SUBRANGE24TYPE_ENUM25TYPE_ARRAY26TYPE_PARAMS27TYPE_USERDEF28TYPE_NONE29TYPE_ANY30TYPE_ANYBIT31TYPE_ANYDATE32TYPE_ANYINT33TYPE_ANYNUM34TYPE_ANYREAL35TYPE_LAZY36TYPE_LTIME37TYPE_BITCONST38TYPE_INTERFACE-4096U_ExpectedOrActual4096boolExpectedOrActualBOOL80bitExpectedOrActualBIT80byteExpectedOrActualBYTE80sintExpectedOrActualSINT80usintExpectedOrActualUSINT80intExpectedOrActualINT160uintExpectedOrActualUINT160wordExpectedOrActualWORD160dwordExpectedOrActualDWORD320dateandtimeExpectedOrActualDATE_AND_TIME320dintExpectedOrActualDINT320realExpectedOrActualREAL320timeExpectedOrActualTIME320dateExpectedOrActualDATE320udintExpectedOrActualUDINT320timeofdayExpectedOrActualTIME_OF_DAY320lwordExpectedOrActualLWORD640lintExpectedOrActualLINT640ulintExpectedOrActualULINT640lrealExpectedOrActualLREAL640ltimeExpectedOrActualLTIME640stringExpectedOrActualT_MaxString20480wstringExpectedOrActualWSTRING(255)40960ST_AssertResult12288ExpectedU_ExpectedOrActual40960ActualU_ExpectedOrActual40964096MessageT_MaxString20488192TestInstancePathT_MaxString204810240ST_AssertResultInstances12352AssertResultST_AssertResult122880DetectionCountUINT1612288DetectionCountThisCycleUINT1612304FB_AssertResultStatic + 16 + 2144 + + + TestIsFailed + BOOL + Indication of whether this test has at least one failed assert + 8 + 2160 + + + AssertionMessage + T_MaxString + Assertion message for the first assertion in this test + 2048 + 2168 + + + AssertionType + E_AssertionType + Assertion type for the first assertion in this test + 8 + 4216 + + + GetAssertionType + E_AssertionType + 8 + + + SetFailed + + + SetName + + Name + T_MaxString + 2048 + + + + GetName + T_MaxString + 2048 + + + SetNumberOfAssertions + + NoOfAssertions + UINT + 16 + + + + SetTestOrder + + OrderNumber + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + + IsSkipped + BOOL + 8 + + + GetNumberOfAssertions + UINT + 16 + + + SetFinished + BOOL + 8 + + + GetAssertionMessage + T_MaxString + 2048 + + + SetSkipped + + + SetAssertionMessage + + AssertMessage + T_MaxString + 2048 + + + + SetAssertionType + + AssertType + E_AssertionType + 8 + + + + IsFinished + BOOL + 8 + + + GetTestOrder + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + IsFailed + BOOL + 8 + + + + PouType + FunctionBlock + + + + + UINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + UINT + + + LowerBorder + 1 + + + UpperBorder + 100 + + + + + TYPE_CLASS + 32 + DWORD + + TYPE_BOOL + 0 + + + TYPE_BIT + 1 + + + TYPE_BYTE + 2 + + + TYPE_WORD + 3 + + + TYPE_DWORD + 4 + + + TYPE_LWORD + 5 + + + TYPE_SINT + 6 + + + TYPE_INT + 7 + + + TYPE_DINT + 8 + + + TYPE_LINT + 9 + + + TYPE_USINT + 10 + + + TYPE_UINT + 11 + + + TYPE_UDINT + 12 + + + TYPE_ULINT + 13 + + + TYPE_REAL + 14 + + + TYPE_LREAL + 15 + + + TYPE_STRING + 16 + + + TYPE_WSTRING + 17 + + + TYPE_TIME + 18 + + + TYPE_DATE + 19 + + + TYPE_DATEANDTIME + 20 + + + TYPE_TIMEOFDAY + 21 + + + TYPE_POINTER + 22 + + + TYPE_REFERENCE + 23 + + + TYPE_SUBRANGE + 24 + + + TYPE_ENUM + 25 + + + TYPE_ARRAY + 26 + + + TYPE_PARAMS + 27 + + + TYPE_USERDEF + 28 + + + TYPE_NONE + 29 + + + TYPE_ANY + 30 + + + TYPE_ANYBIT + 31 + + + TYPE_ANYDATE + 32 + + + TYPE_ANYINT + 33 + + + TYPE_ANYNUM + 34 + + + TYPE_ANYREAL + 35 + + + TYPE_LAZY + 36 + + + TYPE_LTIME + 37 + + + TYPE_BITCONST + 38 + + + + AnyType + 128 + + pValue + BYTE + 64 + 0 + + + diSize + DINT + 32 + 64 + + + TypeClass + TYPE_CLASS + 32 + 96 + + + + linkalways + + + + + E_TypeFieldParam + 16 + INT + + TYPEFIELD_UNKNOWN + 0 + Unknown/not set + + + TYPEFIELD_B + 1 + b or B: binary number + + + TYPEFIELD_O + 2 + o or O: octal number + + + TYPEFIELD_U + 3 + u or U: unsigned decimal number + + + TYPEFIELD_C + 4 + c or C: one ASCII character + + + TYPEFIELD_F + 5 + f or F: float number ( normalized format ) + + + TYPEFIELD_D + 6 + d or D: signed decimal number + + + TYPEFIELD_S + 7 + s or S: string + + + TYPEFIELD_XU + 8 + X: hecadecimal number (upper case characters ) + + + TYPEFIELD_XL + 9 + x: hecadecimal number (lower case characters ) + + + TYPEFIELD_EU + 10 + E: float number ( scientific format ) + + + TYPEFIELD_EL + 11 + e: float number ( scientific format ) + + + + ST_FormatParameters + 160 + + bPercent + BOOL + 8 + 0 + + + bFlags + BOOL + 8 + 8 + + + bWidth + BOOL + 8 + 16 + + + bDot + BOOL + 8 + 24 + + + bPrecision + BOOL + 8 + 32 + + + bType + BOOL + 8 + 40 + + + bAlign + BOOL + Default :Right align + 8 + 48 + + + bSign + BOOL + Default: Sign only for negative values + 8 + 56 + + + bNull + BOOL + Default: No padding + 8 + 64 + + + bBlank + BOOL + Default: No blanks + 8 + 72 + + + bHash + BOOL + Default: No blanks + 8 + 80 + + + iWidth + INT + 16 + 96 + + + iPrecision + INT + 16 + 112 + + + bWidthAsterisk + BOOL + 8 + 128 + + + bPrecisionAsterisk + BOOL + 8 + 136 + + + eType + E_TypeFieldParam + format type parameter + 16 + 144 + + + + conditionalshow + + + + + FB_FormatString + Converts and formats up to 10 T_Arg values to string + 8576 + + sFormat + T_MaxString + Format string + 2048 + 64 + + + ItemType + Input + + + + + arg1 + T_Arg + Format argument 1, use F_INT, F_UINT; F_WORD, F_DWORD, F_LREAL... functions to initialize the argument inputs + 128 + 2112 + + + ItemType + Input + + + + + arg2 + T_Arg + Format argument 2 + 128 + 2240 + + + ItemType + Input + + + + + arg3 + T_Arg + Format argument 3 + 128 + 2368 + + + ItemType + Input + + + + + arg4 + T_Arg + Format argument 4 + 128 + 2496 + + + ItemType + Input + + + + + arg5 + T_Arg + Format argument 5 + 128 + 2624 + + + ItemType + Input + + + + + arg6 + T_Arg + Format argument 6 + 128 + 2752 + + + ItemType + Input + + + + + arg7 + T_Arg + Format argument 7 + 128 + 2880 + + + ItemType + Input + + + + + arg8 + T_Arg + Format argument 8 + 128 + 3008 + + + ItemType + Input + + + + + arg9 + T_Arg + Format argument 9 + 128 + 3136 + + + ItemType + Input + + + + + arg10 + T_Arg + Format argument 10 + 128 + 3264 + + + ItemType + Input + + + + + bError + BOOL + TRUE => error, FALSE => no error + 8 + 3392 + + + ItemType + Output + + + + + nErrId + UDINT + Error code + 32 + 3424 + + + ItemType + Output + + + + + sOut + T_MaxString + Output stirng + 2048 + 3456 + + + ItemType + Output + + + + + pFormat + BYTE + 64 + 5504 + + 0 + + + + conditionalshow + + + + + pOut + BYTE + 64 + 5568 + + 0 + + + + conditionalshow + + + + + iRemOutLen + INT + 16 + 5632 + + + conditionalshow + + + + + bValid + BOOL + 8 + 5648 + + + conditionalshow + + + + + stFmt + ST_FormatParameters + 160 + 5664 + + + conditionalshow + + + + + nArrayElem + INT + 16 + 5824 + + + conditionalshow + + + + + nArgument + UDINT + 32 + 5856 + + + conditionalshow + + + + + parArgs + T_Arg + + 1 + 10 + + 640 + 5888 + + + conditionalshow + + + + + sArgStr + T_MaxString + 2048 + 6528 + + + conditionalshow + + + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + + + TypeClass + 16 + INT + + TYPE_BOOL + 0 + + + TYPE_BIT + 1 + + + TYPE_BYTE + 2 + + + TYPE_WORD + 3 + + + TYPE_DWORD + 4 + + + TYPE_LWORD + 5 + + + TYPE_SINT + 6 + + + TYPE_INT + 7 + + + TYPE_DINT + 8 + + + TYPE_LINT + 9 + + + TYPE_USINT + 10 + + + TYPE_UINT + 11 + + + TYPE_UDINT + 12 + + + TYPE_ULINT + 13 + + + TYPE_REAL + 14 + + + TYPE_LREAL + 15 + + + TYPE_STRING + 16 + + + TYPE_WSTRING + 17 + + + TYPE_TIME + 18 + + + TYPE_DATE + 19 + + + TYPE_DATEANDTIME + 20 + + + TYPE_TIMEOFDAY + 21 + + + TYPE_POINTER + 22 + + + TYPE_REFERENCE + 23 + + + TYPE_SUBRANGE + 24 + + + TYPE_ENUM + 25 + + + TYPE_ARRAY + 26 + + + TYPE_PARAMS + 27 + + + TYPE_USERDEF + 28 + + + TYPE_NONE + 29 + + + TYPE_ANY + 30 + + + TYPE_ANYBIT + 31 + + + TYPE_ANYDATE + 32 + + + TYPE_ANYINT + 33 + + + TYPE_ANYNUM + 34 + + + TYPE_ANYREAL + 35 + + + TYPE_LAZY + 36 + + + TYPE_LTIME + 37 + + + TYPE_BITCONST + 38 + + + TYPE_INTERFACE + -4096 + + + + U_ExpectedOrActual + 4096 + + boolExpectedOrActual + BOOL + 8 + 0 + + + bitExpectedOrActual + BIT + 8 + 0 + + + byteExpectedOrActual + BYTE + 8 + 0 + + + sintExpectedOrActual + SINT + 8 + 0 + + + usintExpectedOrActual + USINT + 8 + 0 + + + intExpectedOrActual + INT + 16 + 0 + + + uintExpectedOrActual + UINT + 16 + 0 + + + wordExpectedOrActual + WORD + 16 + 0 + + + dwordExpectedOrActual + DWORD + 32 + 0 + + + dateandtimeExpectedOrActual + DATE_AND_TIME + 32 + 0 + + + dintExpectedOrActual + DINT + 32 + 0 + + + realExpectedOrActual + REAL + 32 + 0 + + + timeExpectedOrActual + TIME + 32 + 0 + + + dateExpectedOrActual + DATE + 32 + 0 + + + udintExpectedOrActual + UDINT + 32 + 0 + + + timeofdayExpectedOrActual + TIME_OF_DAY + 32 + 0 + + + lwordExpectedOrActual + LWORD + 64 + 0 + + + lintExpectedOrActual + LINT + 64 + 0 + + + ulintExpectedOrActual + ULINT + 64 + 0 + + + lrealExpectedOrActual + LREAL + 64 + 0 + + + ltimeExpectedOrActual + LTIME + 64 + 0 + + + stringExpectedOrActual + T_MaxString + 2048 + 0 + + + wstringExpectedOrActual + WSTRING(255) + 4096 + 0 + + + + ST_AssertResult + 12288 + + Expected + U_ExpectedOrActual + 4096 + 0 + + + Actual + U_ExpectedOrActual + 4096 + 4096 + + + Message + T_MaxString + 2048 + 8192 + + + TestInstancePath + T_MaxString + 2048 + 10240 + + + + ST_AssertResultInstances + 12352 + + AssertResult + ST_AssertResult + 12288 + 0 + + + DetectionCount + UINT + Number of instances of the "AssertResult" + 16 + 12288 + + + DetectionCountThisCycle + UINT + Number of instance of the "AssertResult" in this specific PLC-cycle + 16 + 12304 + + + + FB_AssertResultStatic + This function block is responsible for keeping track of which asserts that have been made. The reason we need to keep track of these is because if the user does the same assert twice (because of running a test suite over several PLC-cycles) we want to know it so we don't print several times (if the assert fails). @@ -153,7 +6873,457 @@ These features aren't disabled, they just aren't used, think child/parent classe - Value of actual - Message (string) - Test instance path (string) -]]>24640448AssertResultsST_AssertResult110001228800064TotalAssertsUINT16122880640GetCurrentTaskIndexGETCURTASKINDEX25612288128AssertResultInstancesST_AssertResultInstances110001235200012288384CycleCountUDINT3224640384FirstCycleExecutedBOOL824640416CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16GetNumberOfAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfAssertsUINT16CreateAssertResultInstanceExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8AddAssertResultExpectedSizeUDINT32ExpectedTypeClassTypeClass16ExpectedValueBYTE64ActualSizeUDINT32ActualTypeClassTypeClass16ActualValueBYTE64MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockST_AssertArrayResult4224ExpectedsSizeUDINT320ExpectedsTypeClassTypeClass1632ActualsSizeUDINT3264ActualsTypeClassTypeClass1696MessageT_MaxString2048112TestInstancePathT_MaxString20482160ST_AssertArrayResultInstances4256AssertArrayResultST_AssertArrayResult42240DetectionCountUINT164224DetectionCountThisCycleUINT164240FB_AssertArrayResultStatic + 24640448 + + AssertResults + ST_AssertResult + + 1 + 1000 + + The total number of instances of each of the "AssertResults" + 12288000 + 64 + + + TotalAsserts + UINT + The total number of unique asserts + 16 + 12288064 + + 0 + + + + GetCurrentTaskIndex + GETCURTASKINDEX + Function block to get the current task cycle + 256 + 12288128 + + + AssertResultInstances + ST_AssertResultInstances + + 1 + 1000 + + The total number of instances of each of the "AssertResults" + 12352000 + 12288384 + + + CycleCount + UDINT + The last PLC cycle count + 32 + 24640384 + + + FirstCycleExecuted + BOOL + Only run first cycle + 8 + 24640416 + + + CopyDetectionCountAndResetDetectionCountInThisCycle + + IteratorCounter + UINT + 16 + + + + GetNumberOfAssertsForTest + UINT + 16 + + CompleteTestInstancePath + T_MaxString + 2048 + + + Counter + UINT + 16 + + + NumberOfAsserts + UINT + 16 + + + + CreateAssertResultInstance + + ExpectedSize + UDINT + 32 + + + ExpectedTypeClass + TypeClass + 16 + + + ExpectedValue + BYTE + 64 + + + ActualSize + UDINT + 32 + + + ActualTypeClass + TypeClass + 16 + + + ActualValue + BYTE + 64 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + GetDetectionCountThisCycle + UINT + 16 + + ExpectedSize + UDINT + 32 + + + ExpectedTypeClass + TypeClass + 16 + + + ExpectedValue + BYTE + 64 + + + ActualSize + UDINT + 32 + + + ActualTypeClass + TypeClass + 16 + + + ActualValue + BYTE + 64 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + GetDetectionCount + UINT + 16 + + ExpectedSize + UDINT + 32 + + + ExpectedTypeClass + TypeClass + 16 + + + ExpectedValue + BYTE + 64 + + + ActualSize + UDINT + 32 + + + ActualTypeClass + TypeClass + 16 + + + ActualValue + BYTE + 64 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + ReportResult + + ExpectedSize + UDINT + 32 + + + ExpectedTypeClass + TypeClass + 16 + + + ExpectedValue + BYTE + 64 + + + ActualSize + UDINT + 32 + + + ActualTypeClass + TypeClass + 16 + + + ActualValue + BYTE + 64 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + ItemType + Output + + + + + LocationIndex + UINT + 16 + + + DataTypesNotEquals + BOOL + 8 + + + DataSizeNotEquals + BOOL + 8 + + + DataContentNotEquals + BOOL + 8 + + + CurrentCycleCount + UDINT + 32 + + + IteratorCounter + UINT + 16 + + + DetectionCountTemp + UINT + 16 + + + FoundOne + BOOL + 8 + + + AdditionalIdenticalAssert + BOOL + 8 + + + + AddAssertResult + + ExpectedSize + UDINT + 32 + + + ExpectedTypeClass + TypeClass + 16 + + + ExpectedValue + BYTE + 64 + + + ActualSize + UDINT + 32 + + + ActualTypeClass + TypeClass + 16 + + + ActualValue + BYTE + 64 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + + + PouType + FunctionBlock + + + + + ST_AssertArrayResult + 4224 + + ExpectedsSize + UDINT + Size in bytes of the expecteds-array + 32 + 0 + + + ExpectedsTypeClass + TypeClass + The data type of the expecteds-array + 16 + 32 + + + ActualsSize + UDINT + Size in bytes of the actuals-array + 32 + 64 + + + ActualsTypeClass + TypeClass + The data type of the actuals-array + 16 + 96 + + + Message + T_MaxString + 2048 + 112 + + + TestInstancePath + T_MaxString + 2048 + 2160 + + + + ST_AssertArrayResultInstances + 4256 + + AssertArrayResult + ST_AssertArrayResult + 4224 + 0 + + + DetectionCount + UINT + Number of instances of the "AssertArrayResult" + 16 + 4224 + + + DetectionCountThisCycle + UINT + Number of instance of the "AssertArrayResult" in this specific PLC-cycle + 16 + 4240 + + + + FB_AssertArrayResultStatic + This function block is responsible for keeping track of which array-asserts that have been made. The reason we need to keep track of these is because if the user does the same assert twice (because of running a test suite over several PLC-cycles) we want to know it so we don't print several times @@ -164,70 +7334,7889 @@ These features aren't disabled, they just aren't used, think child/parent classe - Datatype of the actuals - Message (string) - Test instance path (string) -]]>8480448AssertArrayResultsST_AssertArrayResult11000422400064TotalArrayAssertsUINT1642240640GetCurrentTaskIndexGETCURTASKINDEX2564224128AssertArrayResultInstancesST_AssertArrayResultInstances1100042560004224384CycleCountUDINT328480384FirstCycleExecutedBOOL88480416CreateAssertResultInstanceExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountThisCycleUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16GetDetectionCountUINT16ExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048IteratorCounterUINT16ReportResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8ItemTypeOutputLocationIndexUINT16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8CurrentCycleCountUDINT32IteratorCounterUINT16DetectionCountTempUINT16FoundOneBOOL8AdditionalIdenticalAssertBOOL8GetNumberOfArrayAssertsForTestUINT16CompleteTestInstancePathT_MaxString2048CounterUINT16NumberOfArrayAssertsUINT16CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounterUINT16AddAssertArrayResultExpectedsSizeUDINT32ExpectedsTypeClassTypeClass16ActualsSizeUDINT32ActualsTypeClassTypeClass16MessageT_MaxString2048TestInstancePathT_MaxString2048PouTypeFunctionBlockI_AssertMessageFormatter64PVOIDLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048FB_AdjustAssertFailureMessageToMax253CharLength + 8480448 + + AssertArrayResults + ST_AssertArrayResult + + 1 + 1000 + + The total number of instances of each of the "AssertArrayResults" + 4224000 + 64 + + + TotalArrayAsserts + UINT + The total number of unique asserts + 16 + 4224064 + + 0 + + + + GetCurrentTaskIndex + GETCURTASKINDEX + Function block to get the current task cycle + 256 + 4224128 + + + AssertArrayResultInstances + ST_AssertArrayResultInstances + + 1 + 1000 + + The total number of instances of each of the "AssertArrayResults" + 4256000 + 4224384 + + + CycleCount + UDINT + The last PLC cycle count + 32 + 8480384 + + + FirstCycleExecuted + BOOL + Only run first cycle + 8 + 8480416 + + + CreateAssertResultInstance + + ExpectedsSize + UDINT + 32 + + + ExpectedsTypeClass + TypeClass + 16 + + + ActualsSize + UDINT + 32 + + + ActualsTypeClass + TypeClass + 16 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + GetDetectionCountThisCycle + UINT + 16 + + ExpectedsSize + UDINT + 32 + + + ExpectedsTypeClass + TypeClass + 16 + + + ActualsSize + UDINT + 32 + + + ActualsTypeClass + TypeClass + 16 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + GetDetectionCount + UINT + 16 + + ExpectedsSize + UDINT + 32 + + + ExpectedsTypeClass + TypeClass + 16 + + + ActualsSize + UDINT + 32 + + + ActualsTypeClass + TypeClass + 16 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + + ReportResult + + ExpectedsSize + UDINT + 32 + + + ExpectedsTypeClass + TypeClass + 16 + + + ActualsSize + UDINT + 32 + + + ActualsTypeClass + TypeClass + 16 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + ItemType + Output + + + + + LocationIndex + UINT + 16 + + + DataTypesNotEquals + BOOL + 8 + + + DataSizeNotEquals + BOOL + 8 + + + DataContentNotEquals + BOOL + 8 + + + CurrentCycleCount + UDINT + 32 + + + IteratorCounter + UINT + 16 + + + DetectionCountTemp + UINT + 16 + + + FoundOne + BOOL + 8 + + + AdditionalIdenticalAssert + BOOL + 8 + + + + GetNumberOfArrayAssertsForTest + UINT + 16 + + CompleteTestInstancePath + T_MaxString + 2048 + + + Counter + UINT + 16 + + + NumberOfArrayAsserts + UINT + 16 + + + + CopyDetectionCountAndResetDetectionCountInThisCycle + + IteratorCounter + UINT + 16 + + + + AddAssertArrayResult + + ExpectedsSize + UDINT + 32 + + + ExpectedsTypeClass + TypeClass + 16 + + + ActualsSize + UDINT + 32 + + + ActualsTypeClass + TypeClass + 16 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + + + PouType + FunctionBlock + + + + + I_AssertMessageFormatter + 64 + PVOID + + LogAssertFailure + + Expected + T_MaxString + 2048 + + + Actual + T_MaxString + 2048 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + + + FB_AdjustAssertFailureMessageToMax253CharLength + This function block is responsible for making sure that the asserted test instance path and test message are not loo long. The total printed message can not be more than 253 characters long. -]]>11616MsgFmtStringT_MaxString204864ItemTypeInputStringArgT_MaxString20482112ItemTypeInputMsgFmtStringProcessedT_MaxString20484160ItemTypeOutputStringArgProcessedT_MaxString20486208ItemTypeOutputMsgFmtStringTempT_MaxString20488256TestNameTooLongSTRING(80)64810304...TestName too longTestMsgTooLongSTRING(80)64810952...TestMsg too longMSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERSINT1611600253PouTypeFunctionBlockFB_AdsAssertMessageFormatter + 11616 + + MsgFmtString + T_MaxString + Test instance path + 2048 + 64 + + + ItemType + Input + + + + + StringArg + T_MaxString + Test message + 2048 + 2112 + + + ItemType + Input + + + + + MsgFmtStringProcessed + T_MaxString + 2048 + 4160 + + + ItemType + Output + + + + + StringArgProcessed + T_MaxString + 2048 + 6208 + + + ItemType + Output + + + + + MsgFmtStringTemp + T_MaxString + 2048 + 8256 + + + TestNameTooLong + STRING(80) + 648 + 10304 + + ...TestName too long + + + + TestMsgTooLong + STRING(80) + 648 + 10952 + + ...TestMsg too long + + + + MSG_FMT_STRING_MAX_NUMBER_OF_CHARACTERS + INT + This is actually 254, but if StrArg-argument is used (which it is in TcUnit) it is 253. + 16 + 11600 + + 253 + + + + + PouType + FunctionBlock + + + + + FB_AdsAssertMessageFormatter + This function block is responsible for printing the results of the assertions using the built-in ADSLOGSTR functionality provided by the Tc2_System library. This sends the result using ADS, which is consumed by the error list of Visual Studio. -]]>128I_AssertMessageFormatterLogAssertFailureExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AdjustAssertFailureMessageToMax253CharLengthFB_AdjustAssertFailureMessageToMax253CharLength11616TestInstancePathCleanedT_MaxString2048TestInstancePathFinalT_MaxString2048ReturnValueDINT32TestInstancePathProcessedT_MaxString2048MessageProcessedT_MaxString2048PouTypeFunctionBlockFB_TestSuite + 128 + I_AssertMessageFormatter + + LogAssertFailure + + Expected + T_MaxString + 2048 + + + Actual + T_MaxString + 2048 + + + Message + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AdjustAssertFailureMessageToMax253CharLength + FB_AdjustAssertFailureMessageToMax253CharLength + 11616 + + + TestInstancePathCleaned + T_MaxString + 2048 + + + TestInstancePathFinal + T_MaxString + 2048 + + + ReturnValue + DINT + 32 + + + TestInstancePathProcessed + T_MaxString + 2048 + + + MessageProcessed + T_MaxString + 2048 + + + + + PouType + FunctionBlock + + + + + FB_TestSuite + This function block is responsible for holding the internal state of the test suite. Every test suite can have one or more tests, and every test can do one or more asserts. It's also responsible for providing all the assert-methods for asserting different data types. Only failed assertions are recorded. -]]>33558784InstancePathT_MaxString204864instance-pathnoinitGetCurrentTaskIndexGETCURTASKINDEX + 33558784 + + InstancePath + T_MaxString + 2048 + 64 + + + instance-path + + + noinit + + + + + GetCurrentTaskIndex + GETCURTASKINDEX + We need to have access to specific information of the current task that this test suite is executed in. This is for instance necessary when we need to know whether a test is defined already. The definition of a test that is defined already is that we call on it - with the same name twice in the same cycle ]]>2562112NumberOfTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1623680TestsFB_Test11004224002432TestDuplicateNameTriggerR_TRIG11009600424832TestCycleCountIndexUDINT11003200434432AssertResultsFB_AssertResultStatic24640448437632AssertArrayResultsFB_AssertArrayResultStatic848044825078080AdsAssertMessageFormatterFB_AdsAssertMessageFormatter12833558528AssertMessageFormatterI_AssertMessageFormatter6433558656HasStartedRunningBOOL833558720NumberOfOrderedTestsUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)1633558736AssertEquals_LINTExpectedLINT64ActualLINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfSuccessfulTestsUINT16AssertArrayEquals_ULINTExpectedsULINT64variable_length_arrayDimensions1ActualsULINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32FindTestSuiteInstancePathT_MaxString2048AssertEquals_TIMEExpectedTIME32ActualTIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_TIME_OF_DAYExpectedTIME_OF_DAY32ActualTIME_OF_DAY32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BYTEExpectedBYTE8ActualBYTE8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetNumberOfFailedTestsUINT16CounterUINT16FailedTestsCountUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16NumberOfTestOverArrayLimitUINT16AssertEquals_DATE_AND_TIMEExpectedDATE_AND_TIME32ActualDATE_AND_TIME32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8GetTestByPositionFB_Test4224PositionUINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_BOOLExpectedsBOOL64variable_length_arrayDimensions1ActualsBOOL64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_BYTEExpectedsBYTE64variable_length_arrayDimensions1ActualsBYTE64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedByteStringSTRING(80)648ActualByteStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_DATEExpectedDATE32ActualDATE32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_WORDExpectedWORD16ActualWORD16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LINTExpectedsLINT64variable_length_arrayDimensions1ActualsLINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_LTIMEExpectedLTIME64ActualLTIME64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_UINTExpectedsUINT64variable_length_arrayDimensions1ActualsUINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_LREALExpectedLREAL64ActualLREAL64DeltaLREAL64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_LWORDExpectedsLWORD64variable_length_arrayDimensions1ActualsLWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedLWordStringSTRING(80)648ActualLWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEqualsExpectedAnyType128anytypeclassANYActualAnyType128anytypeclassANYMessageT_MaxString2048CountDINT32ExpectedDataStringT_MaxString2048ActualDataStringT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8boolExpectedBOOL8boolActualBOOL8byteExpectedBYTE8byteActualBYTE8dateExpectedDATE32dateActualDATE32dateAndTimeExpectedDATE_AND_TIME32dateAndTimeActualDATE_AND_TIME32dintExpectedDINT32dintActualDINT32dwordExpectedDWORD32dwordActualDWORD32intExpectedINT16intActualINT16lintExpectedLINT64lintActualLINT64lrealExpectedLREAL64lrealActualLREAL64ltimeExpectedLTIME64ltimeActualLTIME64lwordExpectedLWORD64lwordActualLWORD64realExpectedREAL32realActualREAL32sintExpectedSINT8sintActualSINT8stringExpectedT_MaxString2048stringActualT_MaxString2048wstringExpectedWSTRING(255)4096wstringActualWSTRING(255)4096timeExpectedTIME32timeActualTIME32timeOfDayExpectedTIME_OF_DAY32timeOfDayActualTIME_OF_DAY32udintExpectedUDINT32udintActualUDINT32uintExpectedUINT16uintActualUINT16ulintExpectedULINT64ulintActualULINT64usintExpectedUSINT8usintActualUSINT8wordExpectedWORD16wordActualWORD16DataTypesNotEqualsBOOL8DataSizeNotEqualsBOOL8DataContentNotEqualsBOOL8IteratorCounterDINT32hasanytypeAssertFalseConditionBOOL8MessageT_MaxString2048AssertEquals_SINTExpectedSINT8ActualSINT8MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions2ActualsLREAL64variable_length_arrayDimensions2DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertEquals_ULINTExpectedULINT64ActualULINT64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_BOOLExpectedBOOL8ActualBOOL8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_USINTExpectedUSINT8ActualUSINT8MessageT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048AssertEquals_LWORDExpectedLWORD64ActualLWORD64MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_USINTExpectedsUSINT64variable_length_arrayDimensions1ActualsUSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32SetHasStartedRunningSetTestFailedAssertionTypeE_AssertionType8AssertionMessageT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16GetInstancePathT_MaxString2048GetTestOrderNumberUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16GetNumberOfTestsUINT16AssertArrayEquals_DWORDExpectedsDWORD64variable_length_arrayDimensions1ActualsDWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32GetHasStartedRunningBOOL8AssertArrayEquals_LREALExpectedsLREAL64variable_length_arrayDimensions1ActualsLREAL64variable_length_arrayDimensions1DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_WSTRINGExpectedWSTRING(255)4096ActualWSTRING(255)4096MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8IsTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AssertArrayEquals_REALExpectedsREAL64variable_length_arrayDimensions1ActualsREAL64variable_length_arrayDimensions1DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_DINTExpectedDINT32ActualDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_DINTExpectedsDINT64variable_length_arrayDimensions1ActualsDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertEquals_STRINGExpectedT_MaxString2048ActualT_MaxString2048MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8SetTestFinishedBOOL8TestNameT_MaxString2048IteratorCounterUINT16NumberOfTestsToAnalyseUINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite)16AreAllTestsFinishedBOOL8CounterUINT16GetCurTaskIndexGETCURTASKINDEX256NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArrayEquals_WORDExpectedsWORD64variable_length_arrayDimensions1ActualsWORD64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedDWordStringSTRING(80)648ActualDWordStringSTRING(80)648ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArray3dEquals_LREALExpectedsLREAL64variable_length_arrayDimensions3ActualsLREAL64variable_length_arrayDimensions3DeltaLREAL64MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedLREAL64ActualLREAL64__Index__0DINT32AssertArrayEquals_INTExpectedsINT64variable_length_arrayDimensions1ActualsINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32CalculateAndSetNumberOfAssertsForTestTestNameT_MaxString2048TestInstancePathT_MaxString2048TotalNumberOfAssertsUINT16NumberOfAssertsUINT16NumberOfArrayAssertsUINT16IteratorCounterUINT16GetNumberOfSkippedTestsUINT16CounterUINT16SkippedTestsCountUINT16NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertEquals_DWORDExpectedDWORD32ActualDWORD32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertTrueConditionBOOL8MessageT_MaxString2048AssertEquals_INTExpectedINT16ActualINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_UINTExpectedUINT16ActualUINT16MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArray2dEquals_REALExpectedsREAL64variable_length_arrayDimensions2ActualsREAL64variable_length_arrayDimensions2DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1264UpperBoundExpectedsDINT1264LowerBoundActualsDINT1264UpperBoundActualsDINT1264SizeOfExpectedsDINT1264SizeOfActualsDINT1264OffsetDINT1264ExpectedArrayIndexDINT1264ActualArrayIndexDINT1264ExpectedREAL32ActualREAL32__Index__0DINT32AddTestTestNameT_MaxString2048IsTestOrderedBOOL8IteratorCounterUINT16ErrorMessageT_MaxString2048TestInstancePathT_MaxString2048FunctionCallResultDINT32CycleCountUDINT32TestWithThisNameAlreadyExistsBOOL8LowerCasedTestNameT_MaxString2048TrimmedTestNameT_MaxString2048IgnoreCurrentTestCaseBOOL8NumberOfTestsToAnalyseUINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites)16AssertArray3dEquals_REALExpectedsREAL64variable_length_arrayDimensions3ActualsREAL64variable_length_arrayDimensions3DeltaREAL32MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048DimensionIndexUSINT8LowerBoundExpectedsDINT1396UpperBoundExpectedsDINT1396LowerBoundActualsDINT1396UpperBoundActualsDINT1396SizeOfExpectedsDINT1396SizeOfActualsDINT1396OffsetDINT1396ExpectedArrayIndexDINT1396ActualArrayIndexDINT1396ExpectedREAL32ActualREAL32ExpectedValueStringT_MaxString2048ActualValueStringT_MaxString2048FormatStringFB_FormatString8576__Index__0DINT32AddTestNameToInstancePathT_MaxString2048TestInstancePathT_MaxString2048CompleteTestInstancePathT_MaxString2048AssertEquals_UDINTExpectedUDINT32ActualUDINT32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertEquals_REALExpectedREAL32ActualREAL32DeltaREAL32MessageT_MaxString2048TestInstancePathT_MaxString2048AlreadyReportedBOOL8AssertArrayEquals_SINTExpectedsSINT64variable_length_arrayDimensions1ActualsSINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32AssertArrayEquals_UDINTExpectedsUDINT64variable_length_arrayDimensions1ActualsUDINT64variable_length_arrayDimensions1MessageT_MaxString2048EqualsBOOL8SizeEqualsBOOL8IndexDINT32ExpectedStringT_MaxString2048ActualStringT_MaxString2048AlreadyReportedBOOL8TestInstancePathT_MaxString2048SizeOfExpectedsDINT32SizeOfActualsDINT32ExpectedsIndexDINT32ActualsIndexDINT32__Index__0DINT32PouTypeFunctionBlockcall_after_initreflectionST_AdsLogStringMessage4128MsgCtrlMaskDWORD320MsgFmtStrT_MaxString204832StrArgT_MaxString20482080pack_mode1FB_MemRingBuffer + 256 + 2112 + + + NumberOfTests + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + 2368 + + 0 + + + + Tests + FB_Test + + 1 + 100 + + 422400 + 2432 + + + TestDuplicateNameTrigger + R_TRIG + + 1 + 100 + + Rising trigger of whether we have already notified the user of that the test name pointed to by the current + position is a duplicate + 9600 + 424832 + + + TestCycleCountIndex + UDINT + + 1 + 100 + + Last cycle count index for a specific test. Used to detect whether this test has already been defined in the + current test suite + 3200 + 434432 + + + AssertResults + FB_AssertResultStatic + 24640448 + 437632 + + + AssertArrayResults + FB_AssertArrayResultStatic + 8480448 + 25078080 + + + AdsAssertMessageFormatter + FB_AdsAssertMessageFormatter + Prints the failed asserts to ADS so that Visual Studio can display the assert message. + This assert formatter can be replaced with something else than ADS + 128 + 33558528 + + + AssertMessageFormatter + I_AssertMessageFormatter + 64 + 33558656 + + + HasStartedRunning + BOOL + Indication whether this test suite has started running its tests + 8 + 33558720 + + + NumberOfOrderedTests + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + Number of ordered tests (created by TEST_ORDERED()) that this test suite contains + 16 + 33558736 + + + AssertEquals_LINT + + Expected + LINT expected value + LINT + 64 + + + Actual + LINT actual value + LINT + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + GetNumberOfSuccessfulTests + UINT + 16 + + + AssertArrayEquals_ULINT + + Expecteds + ULINT array with expected values + ULINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + ULINT array with actual values + ULINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + FindTestSuiteInstancePath + T_MaxString + 2048 + + + AssertEquals_TIME + + Expected + TIME expected value + TIME + 32 + + + Actual + TIME actual value + TIME + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_TIME_OF_DAY + + Expected + TIME_OF_DAY expected value + TIME_OF_DAY + 32 + + + Actual + TIME_OF_DAY actual value + TIME_OF_DAY + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_BYTE + + Expected + BYTE expected value + BYTE + 8 + + + Actual + BYTE actual value + BYTE + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + GetNumberOfFailedTests + UINT + 16 + + Counter + UINT + 16 + + + FailedTestsCount + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + + + NumberOfTestOverArrayLimit + UINT + 16 + + + + AssertEquals_DATE_AND_TIME + + Expected + DATE_AND_TIME expected value + DATE_AND_TIME + 32 + + + Actual + DATE_AND_TIME actual value + DATE_AND_TIME + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + GetTestByPosition + FB_Test + 4224 + + Position + UINT (1..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + + AssertArrayEquals_BOOL + + Expecteds + BOOL array with expected values + BOOL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + BOOL array with actual values + BOOL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertArrayEquals_BYTE + + Expecteds + BYTE array with expected values + BYTE + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + BYTE array with actual values + BYTE + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedByteString + STRING(80) + 648 + + + ActualByteString + STRING(80) + 648 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_DATE + + Expected + DATE expected value + DATE + 32 + + + Actual + DATE actual value + DATE + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_WORD + + Expected + WORD expected value + WORD + 16 + + + Actual + WORD actual value + WORD + 16 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_LINT + + Expecteds + LINT array with expected values + LINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + LINT array with actual values + LINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_LTIME + + Expected + LTIME expected value + LTIME + 64 + + + Actual + LTIME actual value + LTIME + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_UINT + + Expecteds + UINT array with expected values + UINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + UINT array with actual values + UINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_LREAL + + Expected + LREAL expected value + LREAL + 64 + + + Actual + LREAL actual value + LREAL + 64 + + + Delta + The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal + LREAL + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_LWORD + + Expecteds + LWORD array with expected values + LWORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + LWORD array with actual values + LWORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedLWordString + STRING(80) + 648 + + + ActualLWordString + STRING(80) + 648 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals + + Expected + Expected value + AnyType + 128 + + + anytypeclass + ANY + + + + + Actual + The value to check against expected + AnyType + 128 + + + anytypeclass + ANY + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Count + DINT + 32 + + + ExpectedDataString + T_MaxString + 2048 + + + ActualDataString + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + boolExpected + BOOL + 8 + + + boolActual + BOOL + 8 + + + byteExpected + BYTE + 8 + + + byteActual + BYTE + 8 + + + dateExpected + DATE + 32 + + + dateActual + DATE + 32 + + + dateAndTimeExpected + DATE_AND_TIME + 32 + + + dateAndTimeActual + DATE_AND_TIME + 32 + + + dintExpected + DINT + 32 + + + dintActual + DINT + 32 + + + dwordExpected + DWORD + 32 + + + dwordActual + DWORD + 32 + + + intExpected + INT + 16 + + + intActual + INT + 16 + + + lintExpected + LINT + 64 + + + lintActual + LINT + 64 + + + lrealExpected + LREAL + 64 + + + lrealActual + LREAL + 64 + + + ltimeExpected + LTIME + 64 + + + ltimeActual + LTIME + 64 + + + lwordExpected + LWORD + 64 + + + lwordActual + LWORD + 64 + + + realExpected + REAL + 32 + + + realActual + REAL + 32 + + + sintExpected + SINT + 8 + + + sintActual + SINT + 8 + + + stringExpected + T_MaxString + 2048 + + + stringActual + T_MaxString + 2048 + + + wstringExpected + WSTRING(255) + 4096 + + + wstringActual + WSTRING(255) + 4096 + + + timeExpected + TIME + 32 + + + timeActual + TIME + 32 + + + timeOfDayExpected + TIME_OF_DAY + 32 + + + timeOfDayActual + TIME_OF_DAY + 32 + + + udintExpected + UDINT + 32 + + + udintActual + UDINT + 32 + + + uintExpected + UINT + 16 + + + uintActual + UINT + 16 + + + ulintExpected + ULINT + 64 + + + ulintActual + ULINT + 64 + + + usintExpected + USINT + 8 + + + usintActual + USINT + 8 + + + wordExpected + WORD + 16 + + + wordActual + WORD + 16 + + + DataTypesNotEquals + The data type of the two ANY input parameters are not equal + BOOL + 8 + + + DataSizeNotEquals + The data size of the two ANY input parameters are not equal + BOOL + 8 + + + DataContentNotEquals + The data content of the two ANY input parameters are not equal + BOOL + 8 + + + IteratorCounter + DINT + 32 + + + + hasanytype + + + + + AssertFalse + + Condition + Condition to be checked + BOOL + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + + AssertEquals_SINT + + Expected + SINT expected value + SINT + 8 + + + Actual + SINT actual value + SINT + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArray2dEquals_LREAL + + Expecteds + LREAL 2d array with expected values + LREAL + 64 + + + variable_length_array + + + Dimensions + 2 + + + + + Actuals + LREAL 2d array with actual values + LREAL + 64 + + + variable_length_array + + + Dimensions + 2 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + LREAL + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + DimensionIndex + Index when looping through Dimensions + USINT + 8 + + + LowerBoundExpecteds + Lower bounds of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + UpperBoundExpecteds + Upper bounds of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + LowerBoundActuals + Lower bounds of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + UpperBoundActuals + Upper bounds of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + SizeOfExpecteds + Size of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + SizeOfActuals + Size of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + Offset + Current Array index offsets from Lower Bound in each dimension + DINT + + 1 + 2 + + 64 + + + ExpectedArrayIndex + Array of current Expected array indexes when looping through arrays + DINT + + 1 + 2 + + 64 + + + ActualArrayIndex + Array of current Actual array indexes when looping through arrays + DINT + + 1 + 2 + + 64 + + + Expected + Single expected value + LREAL + 64 + + + Actual + Single actual value + LREAL + 64 + + + __Index__0 + DINT + 32 + + + + AssertEquals_ULINT + + Expected + ULINT expected value + ULINT + 64 + + + Actual + ULINT actual value + ULINT + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_BOOL + + Expected + BOOL expected value + BOOL + 8 + + + Actual + BOOL actual value + BOOL + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + + AssertEquals_USINT + + Expected + USINT expected value + USINT + 8 + + + Actual + USINT actual value + USINT + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + + AssertEquals_LWORD + + Expected + LWORD expected value + LWORD + 64 + + + Actual + LWORD actual value + LWORD + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_USINT + + Expecteds + USINT array with expected values + USINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + USINT array with actual values + USINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + SetHasStartedRunning + + + SetTestFailed + + AssertionType + E_AssertionType + 8 + + + AssertionMessage + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + + GetInstancePath + T_MaxString + 2048 + + + GetTestOrderNumber + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + TestName + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + + + + GetNumberOfTests + UINT + 16 + + + AssertArrayEquals_DWORD + + Expecteds + DWORD array with expected values + DWORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + DWORD array with actual values + DWORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedDWordString + STRING(80) + 648 + + + ActualDWordString + STRING(80) + 648 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + GetHasStartedRunning + BOOL + 8 + + + AssertArrayEquals_LREAL + + Expecteds + LREAL array with expected values + LREAL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + LREAL array with actual values + LREAL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + LREAL + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_WSTRING + + Expected + WSTRING expected value + WSTRING(255) + 4096 + + + Actual + WSTRING actual value + WSTRING(255) + 4096 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + IsTestFinished + BOOL + 8 + + TestName + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + + AssertArrayEquals_REAL + + Expecteds + REAL array with expected values + REAL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + REAL array with actual values + REAL + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + REAL + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_DINT + + Expected + DINT expected value + DINT + 32 + + + Actual + DINT actual value + DINT + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_DINT + + Expecteds + DINT array with expected values + DINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + DINT array with actual values + DINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertEquals_STRING + + Expected + STRING expected value + T_MaxString + 2048 + + + Actual + STRING actual value + T_MaxString + 2048 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + SetTestFinished + BOOL + 8 + + TestName + T_MaxString + 2048 + + + IteratorCounter + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (0..GVL_Param_TcUnit.MaxNumberOfTestsForEachTestSuite) + 16 + + + + AreAllTestsFinished + BOOL + 8 + + Counter + UINT + 16 + + + GetCurTaskIndex + GETCURTASKINDEX + 256 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + + + + AssertArrayEquals_WORD + + Expecteds + WORD array with expected values + WORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + WORD array with actual values + WORD + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedDWordString + STRING(80) + 648 + + + ActualDWordString + STRING(80) + 648 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertArray3dEquals_LREAL + + Expecteds + LREAL 3d array with expected values + LREAL + 64 + + + variable_length_array + + + Dimensions + 3 + + + + + Actuals + LREAL 3d array with actual values + LREAL + 64 + + + variable_length_array + + + Dimensions + 3 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + LREAL + 64 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + DimensionIndex + Index when looping through Dimensions + USINT + 8 + + + LowerBoundExpecteds + Lower bounds of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + UpperBoundExpecteds + Upper bounds of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + LowerBoundActuals + Lower bounds of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + UpperBoundActuals + Upper bounds of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + SizeOfExpecteds + Size of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + SizeOfActuals + Size of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + Offset + Current Array index offsets from Lower Bound in each dimension + DINT + + 1 + 3 + + 96 + + + ExpectedArrayIndex + Array of current Expected array indexes when looping through arrays + DINT + + 1 + 3 + + 96 + + + ActualArrayIndex + Array of current Actual array indexes when looping through arrays + DINT + + 1 + 3 + + 96 + + + Expected + Single expected value + LREAL + 64 + + + Actual + Single actual value + LREAL + 64 + + + __Index__0 + DINT + 32 + + + + AssertArrayEquals_INT + + Expecteds + INT array with expected values + INT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + INT array with actual values + INT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + CalculateAndSetNumberOfAssertsForTest + + TestName + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + TotalNumberOfAsserts + UINT + 16 + + + NumberOfAsserts + UINT + 16 + + + NumberOfArrayAsserts + UINT + 16 + + + IteratorCounter + UINT + 16 + + + + GetNumberOfSkippedTests + UINT + 16 + + Counter + UINT + 16 + + + SkippedTestsCount + UINT + 16 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + + + + AssertEquals_DWORD + + Expected + DWORD expected value + DWORD + 32 + + + Actual + DWORD actual value + DWORD + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertTrue + + Condition + Condition to be checked + BOOL + 8 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + + AssertEquals_INT + + Expected + INT expected value + INT + 16 + + + Actual + INT actual value + INT + 16 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_UINT + + Expected + UINT expected value + UINT + 16 + + + Actual + UINT actual value + UINT + 16 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArray2dEquals_REAL + + Expecteds + REAL 2d array with expected values + REAL + 64 + + + variable_length_array + + + Dimensions + 2 + + + + + Actuals + REAL 2d array with actual values + REAL + 64 + + + variable_length_array + + + Dimensions + 2 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + REAL + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + DimensionIndex + Index when looping through Dimensions + USINT + 8 + + + LowerBoundExpecteds + Lower bounds of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + UpperBoundExpecteds + Upper bounds of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + LowerBoundActuals + Lower bounds of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + UpperBoundActuals + Upper bounds of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + SizeOfExpecteds + Size of Expecteds array in each dimension + DINT + + 1 + 2 + + 64 + + + SizeOfActuals + Size of Actuals array in each dimension + DINT + + 1 + 2 + + 64 + + + Offset + Current Array index offsets from Lower Bound in each dimension + DINT + + 1 + 2 + + 64 + + + ExpectedArrayIndex + Array of current Expected array indexes when looping through arrays + DINT + + 1 + 2 + + 64 + + + ActualArrayIndex + Array of current Actual array indexes when looping through arrays + DINT + + 1 + 2 + + 64 + + + Expected + Single expected value + REAL + 32 + + + Actual + Single actual value + REAL + 32 + + + __Index__0 + DINT + 32 + + + + AddTest + + TestName + T_MaxString + 2048 + + + IsTestOrdered + BOOL + 8 + + + IteratorCounter + UINT + 16 + + + ErrorMessage + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + FunctionCallResult + DINT + 32 + + + CycleCount + UDINT + 32 + + + TestWithThisNameAlreadyExists + BOOL + 8 + + + LowerCasedTestName + T_MaxString + 2048 + + + TrimmedTestName + T_MaxString + 2048 + + + IgnoreCurrentTestCase + BOOL + 8 + + + NumberOfTestsToAnalyse + UINT (UINT#1..GVL_Param_TcUnit.MaxNumberOfTestSuites) + 16 + + + + AssertArray3dEquals_REAL + + Expecteds + REAL 3d array with expected values + REAL + 64 + + + variable_length_array + + + Dimensions + 3 + + + + + Actuals + REAL 3d array with actual values + REAL + 64 + + + variable_length_array + + + Dimensions + 3 + + + + + Delta + The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the expected value in that array cell + REAL + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + DimensionIndex + Index when looping through Dimensions + USINT + 8 + + + LowerBoundExpecteds + Lower bounds of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + UpperBoundExpecteds + Upper bounds of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + LowerBoundActuals + Lower bounds of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + UpperBoundActuals + Upper bounds of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + SizeOfExpecteds + Size of Expecteds array in each dimension + DINT + + 1 + 3 + + 96 + + + SizeOfActuals + Size of Actuals array in each dimension + DINT + + 1 + 3 + + 96 + + + Offset + Current Array index offsets from Lower Bound in each dimension + DINT + + 1 + 3 + + 96 + + + ExpectedArrayIndex + Array of current Expected array indexes when looping through arrays + DINT + + 1 + 3 + + 96 + + + ActualArrayIndex + Array of current Actual array indexes when looping through arrays + DINT + + 1 + 3 + + 96 + + + Expected + Single expected value + REAL + 32 + + + Actual + Single actual value + REAL + 32 + + + ExpectedValueString + T_MaxString + 2048 + + + ActualValueString + T_MaxString + 2048 + + + FormatString + String formatter for output messages + FB_FormatString + 8576 + + + __Index__0 + DINT + 32 + + + + AddTestNameToInstancePath + T_MaxString + 2048 + + TestInstancePath + T_MaxString + 2048 + + + CompleteTestInstancePath + T_MaxString + 2048 + + + + AssertEquals_UDINT + + Expected + UDINT expected value + UDINT + 32 + + + Actual + UDINT actual value + UDINT + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertEquals_REAL + + Expected + REAL expected value + REAL + 32 + + + Actual + REAL actual value + REAL + 32 + + + Delta + The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal + REAL + 32 + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + TestInstancePath + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + + AssertArrayEquals_SINT + + Expecteds + SINT array with expected values + SINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + SINT array with actual values + SINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + AssertArrayEquals_UDINT + + Expecteds + UDINT array with expected values + UDINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Actuals + UDINT array with actual values + UDINT + 64 + + + variable_length_array + + + Dimensions + 1 + + + + + Message + The identifying message for the assertion error + T_MaxString + 2048 + + + Equals + BOOL + 8 + + + SizeEquals + BOOL + 8 + + + Index + DINT + 32 + + + ExpectedString + T_MaxString + 2048 + + + ActualString + T_MaxString + 2048 + + + AlreadyReported + BOOL + 8 + + + TestInstancePath + T_MaxString + 2048 + + + SizeOfExpecteds + DINT + 32 + + + SizeOfActuals + DINT + 32 + + + ExpectedsIndex + DINT + 32 + + + ActualsIndex + DINT + 32 + + + __Index__0 + DINT + 32 + + + + + PouType + FunctionBlock + + + call_after_init + + + reflection + + + + + ST_AdsLogStringMessage + 4128 + + MsgCtrlMask + DWORD + 32 + 0 + + + MsgFmtStr + T_MaxString + 2048 + 32 + + + StrArg + T_MaxString + 2048 + 2080 + + + + pack_mode + 1 + + + + + FB_MemRingBuffer + This function block implements ring buffer fifo functionality. A_AddTail adds new entry, A_GetHead gets first (oldest) entry - A_RemoveHead gets and removes first (oldest) entry. Use A_Reset to clear all fifo data. ]]>768pWriteBYTE6464ItemTypeInputcbWriteUDINT32128ItemTypeInputpReadBYTE64192ItemTypeInputcbReadUDINT32256ItemTypeInputpBufferBYTE64320ItemTypeInputcbBufferUDINT32384ItemTypeInputbOkBOOL8416ItemTypeOutputnCountUDINT324480ItemTypeOutputcbSizeUDINT324800ItemTypeOutputcbReturnUDINT Number of recend realy returned (removed or get) data bytes - If bOk == FALSE and cbReturn <> 0 => Number of required read buffer data bytes (cbRead underflow) ]]>325120ItemTypeOutputidxLastDWORD325440conditionalshowidxFirstDWORD325760conditionalshowidxGetDWORD32608conditionalshowpTmpBYTE64640conditionalshowcbTmpDWORD32704conditionalshowcbCopiedDWORD32736conditionalshowA_ResetA_AddTailA_RemoveHeadA_GetHeadPouTypeFunctionBlockconditionalshow_all_localsTON256INBOOL864ItemTypeInputPTTIME3296ItemTypeInputQBOOL8128ItemTypeOutputETTIME32160ItemTypeOutputMBOOL8192StartTimeTIME32224PouTypeFunctionBlockFB_AdsLogStringMessageFifoQueue + 768 + + pWrite + BYTE + Pointer to write data + 64 + 64 + + + ItemType + Input + + + + + cbWrite + UDINT + Byte size of write data + 32 + 128 + + + ItemType + Input + + + + + pRead + BYTE + Pointer to read data buffer + 64 + 192 + + + ItemType + Input + + + + + cbRead + UDINT + Byte size of read data buffer + 32 + 256 + + + ItemType + Input + + + + + pBuffer + BYTE + Pointer to ring buffer data bytes + 64 + 320 + + + ItemType + Input + + + + + cbBuffer + UDINT + Max. ring buffer byte size + 32 + 384 + + + ItemType + Input + + + + + bOk + BOOL + TRUE = new entry added or removed succesfully, FALSE = fifo overflow or fifo empty + 8 + 416 + + + ItemType + Output + + + + + nCount + UDINT + Number of fifo entries + 32 + 448 + + 0 + + + + ItemType + Output + + + + + cbSize + UDINT + Current byte length of fifo data + 32 + 480 + + 0 + + + + ItemType + Output + + + + + cbReturn + UDINT + If bOk == TRUE => Number of recend realy returned (removed or get) data bytes + If bOk == FALSE and cbReturn <> 0 => Number of required read buffer data bytes (cbRead underflow) + 32 + 512 + + 0 + + + + ItemType + Output + + + + + idxLast + DWORD + 32 + 544 + + 0 + + + + conditionalshow + + + + + idxFirst + DWORD + 32 + 576 + + 0 + + + + conditionalshow + + + + + idxGet + DWORD + 32 + 608 + + + conditionalshow + + + + + pTmp + BYTE + 64 + 640 + + + conditionalshow + + + + + cbTmp + DWORD + 32 + 704 + + + conditionalshow + + + + + cbCopied + DWORD + 32 + 736 + + + conditionalshow + + + + + A_Reset + + + A_AddTail + + + A_RemoveHead + + + A_GetHead + + + + PouType + FunctionBlock + + + conditionalshow_all_locals + + + + + TON + 256 + + IN + BOOL + starts timer with rising edge, resets timer with falling edge + 8 + 64 + + + ItemType + Input + + + + + PT + TIME + time to pass, before Q is set + 32 + 96 + + + ItemType + Input + + + + + Q + BOOL + gets TRUE, delay time (PT) after a rising edge at IN + 8 + 128 + + + ItemType + Output + + + + + ET + TIME + elapsed time + 32 + 160 + + + ItemType + Output + + + + + M + BOOL + 8 + 192 + + + StartTime + TIME + 32 + 224 + + + + PouType + FunctionBlock + + + + + FB_AdsLogStringMessageFifoQueue + This function block is responsible for making sure that the ADSLOGSTR-messages to the ADS-router are transmitted cyclically and not in a burst. The reason this is necessary is because that if too many messages are sent at the same time some get lost and are never printed to the error list output -]]>8321152ArrayBufferBYTE01040000832000064MemRingBufferFB_MemRingBuffer7688320064TimerBetweenMessagesTON2568320832.IN1.PT10MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORDUSINT883210884TIME_BETWEEN_MESSAGESTIME32832112010GetLogCountUDINT32WriteLogMsgCtrlMaskDWORD32MsgFmtStrT_MaxString2048StrArgT_MaxString2048ErrorBOOL8ItemTypeOutputAdsLogStringMessageST_AdsLogStringMessage4128GetAndRemoveLogFromQueueAdsLogStringMessageST_AdsLogStringMessage4128ItemTypeOutputErrorBOOL8ItemTypeOutputPouTypeFunctionBlockST_PMPS_Attenuator_IO64nTranREAL320xAttOKUINT1632ST_PMPS_Attenuator64ST_PMPS_Attenuator_IOST_PMPS_Aperture_IO96WidthREAL320plcAttribute_pytmcpv: Width + + 8321152 + + ArrayBuffer + BYTE + + 0 + 1040000 + + 8320000 + 64 + + + MemRingBuffer + FB_MemRingBuffer + 768 + 8320064 + + + TimerBetweenMessages + TON + 256 + 8320832 + + + .IN + 1 + + + .PT + 10 + + + + + MEM_RING_BUFFER_INTERNAL_USE_PER_DATA_RECORD + USINT + 8 + 8321088 + + 4 + + + + TIME_BETWEEN_MESSAGES + TIME + 32 + 8321120 + + 10 + + + + GetLogCount + UDINT + 32 + + + WriteLog + + MsgCtrlMask + DWORD + 32 + + + MsgFmtStr + T_MaxString + 2048 + + + StrArg + T_MaxString + 2048 + + + Error + Buffer overflow + BOOL + 8 + + + ItemType + Output + + + + + AdsLogStringMessage + ST_AdsLogStringMessage + 4128 + + + + GetAndRemoveLogFromQueue + + AdsLogStringMessage + ST_AdsLogStringMessage + 4128 + + + ItemType + Output + + + + + Error + Buffer empty + BOOL + 8 + + + ItemType + Output + + + + + + + PouType + FunctionBlock + + + + + ST_PMPS_Attenuator_IO + 64 + + nTran + REAL + 32 + 0 + + + xAttOK + UINT + 16 + 32 + + + + + + + + + + + + + + + ST_PMPS_Attenuator + 64 + ST_PMPS_Attenuator_IO + + + ST_PMPS_Aperture_IO + 96 + + Width + REAL + distance between horizontal slits (x) + 32 + 0 + + + plcAttribute_pytmc + pv: Width io: i - field: EGU mmHeightREAL3232plcAttribute_pytmcpv: Height + field: EGU mm + + + + + Height + REAL + distance between vertical slits (y) + 32 + 32 + + + plcAttribute_pytmc + pv: Height io: i - field: EGU mmxOKBOOL864plcAttribute_pytmcpv: OK - io: iST_PMPS_Aperture96ST_PMPS_Aperture_IOST_BeamParams1760nTranREAL3200pytmcpv: Transmission + field: EGU mm + + + + + xOK + BOOL + status of aperture, false if error or in motion + 8 + 64 + + + plcAttribute_pytmc + pv: OK + io: i + + + + + + ST_PMPS_Aperture + 96 + ST_PMPS_Aperture_IO + + + ST_BeamParams + 1760 + + nTran + REAL + Requested pre-optic attenuation % + 32 + 0 + + 0 + + + + pytmc + pv: Transmission io: i field: HOPR 1; field: LOPR 0; field: PREC 2; - nRateUDINT32320pytmcpv: Rate + + + + + + nRate + UDINT + Pulse-rate + 32 + 32 + + 0 + + + + pytmc + pv: Rate io: i field: EGU Hz - neVRangeDWORD32640pytmcpv: eVRanges + + + + + + neVRange + DWORD + Photon energy ranges + 32 + 64 + + 0 + + + + pytmc + pv: eVRanges io: i - field: EGU eVdisplaymodebinaryneVREAL32960pytmcpv: PhotonEnergy + field: EGU eV + + + displaymode + binary + + + + + neV + REAL + Photon energy + 32 + 96 + + 0 + + + + pytmc + pv: PhotonEnergy io: i - field: EGU eVnBCRangeWORD161280pytmcpv: BeamClassRanges - io: idisplaymodebinarynBeamClassUSINT81440pytmcpv: BeamClass - io: inMachineModeUSINT81523pytmcpv: MachineMode - io: iastAttenuatorsST_PMPS_Attenuator1161024160pytmcpv: AuxAtt - io: iaVetoDevicesBOOL1161281184pytmcpv: Veto - io: iastAperturesST_PMPS_Aperture143841312[1].Width1000[1].Height1000[2].Width1000[2].Height1000[3].Width1000[3].Height1000[4].Width1000[4].Height1000pytmcpv: Apt - io: ixValidToggleBOOL81696xValidBOOL81704pytmcpv: Valid - io: inCohortIntUDINT321728pytmcpv: Cohort + field: EGU eV + + + + + nBCRange + WORD + Beamclass ranges + 16 + 128 + + 0 + + + + pytmc + pv: BeamClassRanges + io: i + + + displaymode + binary + + + + + nBeamClass + USINT + Beamclass + 8 + 144 + + 0 + + + + pytmc + pv: BeamClass + io: i + + + + + nMachineMode + USINT + Machine Mode + 8 + 152 + + 3 + + + + pytmc + pv: MachineMode + io: i + + + + + astAttenuators + ST_PMPS_Attenuator + + 1 + 16 + + Beamline attenuators + 1024 + 160 + + + pytmc + pv: AuxAtt + io: i + + + + + aVetoDevices + BOOL + + 1 + 16 + + Stoppers + 128 + 1184 + + + pytmc + pv: Veto + io: i + + + + + astApertures + ST_PMPS_Aperture + + 1 + 4 + + Apertures + 384 + 1312 + + + [1].Width + 1000 + + + [1].Height + 1000 + + + [2].Width + 1000 + + + [2].Height + 1000 + + + [3].Width + 1000 + + + [3].Height + 1000 + + + [4].Width + 1000 + + + [4].Height + 1000 + + + + + pytmc + pv: Apt + io: i + + + + + xValidToggle + BOOL + Toggle for watchdog + 8 + 1696 + + + xValid + BOOL + Beam parameter set is valid (if readback), or acknowledged (if request) + 8 + 1704 + + + pytmc + pv: Valid + io: i + + + + + nCohortInt + UDINT + Cohort index. Identifies which cohort this BP set was included in arbitration + 32 + 1728 + + + pytmc + pv: Cohort io: i field: DESC Cohort inc on each arb cycle - PE_Ranges + + + + + + PE_Ranges + Does nothing other than set the gvl for photon energy bitmask to one of two constants, K or L. Workaround for compile defines not fully working for libraries at the time of writing this. - Otherwise I would have just used the compile define in the GVL declaration.]]>64PouTypeFunctionBlockFB_JsonSaxWriter + 64 + + + PouType + FunctionBlock + + + + + FB_JsonSaxWriter + | Provides the functionality to create a JSON document. | Steps of documentation creation: | 1. StartObject() to start a new object in the document. | 2. Add several keys/values via AddKeyString() and the other methods. | 3. EndObject() to finish object. | 4. GetDocument() in order to get the full document as string. - | 5. ResetDocument() if a new document should be created with the same SaxWriter instance.]]>384initStatusHRESULT3264-1743714536ItemTypeOutputipWriterITcJsonSaxWriter64128ipWriter2ITcJsonSaxWriter264192CLSID_TcJsonSaxWriterCLSID128256.Data13870298264.Data256256.Data317669.Data4[0]158.Data4[1]60.Data4[2]93.Data4[3]248.Data4[4]70.Data4[5]150.Data4[6]7.Data4[7]196AddKeyNumberkeySTRING(80)64ItemTypeInOutvalueDINT32AddStringvalueSTRING(80)64ItemTypeInOutAddKeyFileTimekeySTRING(80)64ItemTypeInOutvalueFILETIME64IsCompleteBOOL8AddUdintvalueUDINT32AddHexBinarypBytesBYTE64nBytesDINT32AddLintvalueLINT64AddLrealvalueLREAL64AddKeykeySTRING(80)64ItemTypeInOutResetDocumentHRESULT32AddKeyLrealkeySTRING(80)64ItemTypeInOutvalueLREAL64StartObjectHRESULT32GetDocumentLengthUDINT32hrErrorCodeHRESULT32ItemTypeOutputnUDINT32pSTRING(80)64AddKeyDcTimekeySTRING(80)64ItemTypeInOutvalueDCTIME64AddDateTimevalueDATE_AND_TIME32AddRawObjectrawJsonSTRING(80)64ItemTypeInOutSetMaxDecimalPlacesHRESULT32decimalPlacesDINT32__get_ipWriterITcJsonSaxWriter64_ipWriterITcJsonSaxWriter64propertyAddKeyBoolkeySTRING(80)64ItemTypeInOutvalueBOOL8GetDocumentSTRING(255)2048hrErrorCodeHRESULT32ItemTypeOutputpSINT64nUDINT32AddDintvalueDINT32AddRawArrayBOOL8rawJsonSTRING(80)64ItemTypeInOutAddKeyStringkeySTRING(80)64ItemTypeInOutvalueSTRING(80)64ItemTypeInOutCopyDocumentUDINT32pDocSTRING(80)64ItemTypeInOutnDocUDINT32hrErrorCodeHRESULT32ItemTypeOutputAddUlintvalueULINT64GetMaxDecimalPlacesDINT32dpDINT32AddFileTimevalueFILETIME64AddNullAddKeyDateTimekeySTRING(80)64ItemTypeInOutvalueDATE_AND_TIME32AddBoolvalueBOOL8AddBase64pBytesBYTE64nBytesDINT32AddDcTimevalueDCTIME64AddKeyNullkeySTRING(80)64ItemTypeInOutEndArrayHRESULT32EndObjectHRESULT32StartArrayHRESULT32AddRealvalueREAL32PouTypeFunctionBlockno_explicit_calldo not call this POU directly_ST_NCADS_IDXOFFS_AxisParameter1632PARAMSTRUCTUDINT3200IDUDINT32321NAMEUDINT32642AXISTYPEUDINT32963CYCLETIMEUDINT321284UNITNAMEUDINT321605VELOREFSEARCHUDINT321926VELOSYNCSEARCHUDINT322247VELOSLOWMANUALUDINT322568VELOFASTMANUALUDINT322889VELOFASTUDINT3232010POSAREAENABLEUDINT3235215POSAREARANGEUDINT3238416MOTCNTRLENABLEUDINT3241617MOTCNTRLTIMEUDINT3244818LOOPENABLEUDINT3248019LOOPDISTANCEUDINT3251220TARGETPOSENAUDINT3254421TARGETPOSRANGEUDINT3257622TARGETPOSTIMEUDINT3260823PULSDISTPOSUDINT3264024PULSDISTNEGUDINT3267225FADINGACCELERATIONUDINT3270429FASTAXISSTOPSIGNALTYPEUDINT3273630UNITFLAGSUDINT3276838VELOMAXIMUMUDINT3280039MOTCNTRLRANGEUDINT3283240PEHCONTROLENAUDINT3286441PEHCONTROLTIMEUDINT3289642BACKLASHCOMPENAUDINT3292843BACKLASHUDINT3296044DATAPERSISTENCEUDINT3299248HWAMSADDRUDINT32102449HWCHNNOUDINT32105650APPLICATIONREQUESTUDINT32108851ACCUDINT321120257DECUDINT321152258JERKUDINT321184259DELAYUDINT321216260OVERRIDETYPEUDINT321248261VELOJUMPFACTORUDINT321280262REDUCTIONFEEDBACKUDINT321312263TOLERANCEBALLAUXAXISUDINT321344264MAXPOSDEVIATIONAUXAXISUDINT321376265FASTACCUDINT321408266FASTDECUDINT321440267FASTJERKUDINT321472268REF_POSUDINT32150465795ENCSEARCHDIRUDINT32153665793ENCSYNCDIRUDINT32156865794ENCREFMODEUDINT32160065799conditionalshow_ST_NCADS_AxisParameter1664IDXGRPUDINT32016384IDXOFFS_ST_NCADS_IDXOFFS_AxisParameter163232conditionalshow_ST_NCADS_IDXOFFS_AxisState800ONLINESTRUCTUDINT3200ERRORUDINT32321SETTASKCYCLEUDINT + 384 + + initStatus + HRESULT + 32 + 64 + + -1743714536 + + + + ItemType + Output + + + + + ipWriter + ITcJsonSaxWriter + 64 + 128 + + + ipWriter2 + ITcJsonSaxWriter2 + 64 + 192 + + + CLSID_TcJsonSaxWriter + CLSID + 128 + 256 + + + .Data1 + 3870298264 + + + .Data2 + 56256 + + + .Data3 + 17669 + + + .Data4[0] + 158 + + + .Data4[1] + 60 + + + .Data4[2] + 93 + + + .Data4[3] + 248 + + + .Data4[4] + 70 + + + .Data4[5] + 150 + + + .Data4[6] + 7 + + + .Data4[7] + 196 + + + + + AddKeyNumber + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + DINT + 32 + + + + AddString + + value + STRING(80) + 64 + + + ItemType + InOut + + + + + + AddKeyFileTime + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + FILETIME + 64 + + + + IsComplete + BOOL + 8 + + + AddUdint + + value + UDINT + 32 + + + + AddHexBinary + + pBytes + BYTE + 64 + + + nBytes + DINT + 32 + + + + AddLint + + value + LINT + 64 + + + + AddLreal + + value + LREAL + 64 + + + + AddKey + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + + ResetDocument + HRESULT + 32 + + + AddKeyLreal + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + LREAL + 64 + + + + StartObject + HRESULT + 32 + + + GetDocumentLength + UDINT + 32 + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + n + UDINT + 32 + + + p + STRING(80) + 64 + + + + AddKeyDcTime + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + DCTIME + 64 + + + + AddDateTime + + value + DATE_AND_TIME + 32 + + + + AddRawObject + + rawJson + STRING(80) + 64 + + + ItemType + InOut + + + + + + SetMaxDecimalPlaces + HRESULT + 32 + + decimalPlaces + DINT + 32 + + + + __get_ipWriter + ITcJsonSaxWriter + 64 + + _ipWriter + ITcJsonSaxWriter + 64 + + + + property + + + + + AddKeyBool + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + BOOL + 8 + + + + GetDocument + STRING(255) + 2048 + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + p + SINT + 64 + + + n + UDINT + 32 + + + + AddDint + + value + DINT + 32 + + + + AddRawArray + BOOL + 8 + + rawJson + STRING(80) + 64 + + + ItemType + InOut + + + + + + AddKeyString + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + STRING(80) + 64 + + + ItemType + InOut + + + + + + CopyDocument + UDINT + 32 + + pDoc + target string buffer where the document should be copied to + STRING(80) + 64 + + + ItemType + InOut + + + + + nDoc + size in bytes of the target string buffer + UDINT + 32 + + + hrErrorCode + HRESULT + 32 + + + ItemType + Output + + + + + + AddUlint + + value + ULINT + 64 + + + + GetMaxDecimalPlaces + DINT + 32 + + dp + DINT + 32 + + + + AddFileTime + + value + FILETIME + 64 + + + + AddNull + + + AddKeyDateTime + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + value + DATE_AND_TIME + 32 + + + + AddBool + + value + BOOL + 8 + + + + AddBase64 + + pBytes + BYTE + 64 + + + nBytes + DINT + 32 + + + + AddDcTime + + value + DCTIME + 64 + + + + AddKeyNull + + key + STRING(80) + 64 + + + ItemType + InOut + + + + + + EndArray + HRESULT + 32 + + + EndObject + HRESULT + 32 + + + StartArray + HRESULT + 32 + + + AddReal + + value + REAL + 32 + + + + + PouType + FunctionBlock + + + no_explicit_call + do not call this POU directly + + + + + _ST_NCADS_IDXOFFS_AxisParameter + 1632 + + PARAMSTRUCT + UDINT + NC ADS Index Offsets for Axis Parameters + 32 + 0 + + 0 + + + + ID + UDINT + 32 + 32 + + 1 + + + + NAME + UDINT + 32 + 64 + + 2 + + + + AXISTYPE + UDINT + 32 + 96 + + 3 + + + + CYCLETIME + UDINT + 32 + 128 + + 4 + + + + UNITNAME + UDINT + 32 + 160 + + 5 + + + + VELOREFSEARCH + UDINT + 32 + 192 + + 6 + + + + VELOSYNCSEARCH + UDINT + 32 + 224 + + 7 + + + + VELOSLOWMANUAL + UDINT + 32 + 256 + + 8 + + + + VELOFASTMANUAL + UDINT + 32 + 288 + + 9 + + + + VELOFAST + UDINT + 32 + 320 + + 10 + + + + POSAREAENABLE + UDINT + 32 + 352 + + 15 + + + + POSAREARANGE + UDINT + 32 + 384 + + 16 + + + + MOTCNTRLENABLE + UDINT + 32 + 416 + + 17 + + + + MOTCNTRLTIME + UDINT + 32 + 448 + + 18 + + + + LOOPENABLE + UDINT + 32 + 480 + + 19 + + + + LOOPDISTANCE + UDINT + 32 + 512 + + 20 + + + + TARGETPOSENA + UDINT + 32 + 544 + + 21 + + + + TARGETPOSRANGE + UDINT + 32 + 576 + + 22 + + + + TARGETPOSTIME + UDINT + 32 + 608 + + 23 + + + + PULSDISTPOS + UDINT + 32 + 640 + + 24 + + + + PULSDISTNEG + UDINT + 32 + 672 + + 25 + + + + FADINGACCELERATION + UDINT + 32 + 704 + + 29 + + + + FASTAXISSTOPSIGNALTYPE + UDINT + 32 + 736 + + 30 + + + + UNITFLAGS + UDINT + 32 + 768 + + 38 + + + + VELOMAXIMUM + UDINT + 32 + 800 + + 39 + + + + MOTCNTRLRANGE + UDINT + 32 + 832 + + 40 + + + + PEHCONTROLENA + UDINT + 32 + 864 + + 41 + + + + PEHCONTROLTIME + UDINT + 32 + 896 + + 42 + + + + BACKLASHCOMPENA + UDINT + 32 + 928 + + 43 + + + + BACKLASH + UDINT + 32 + 960 + + 44 + + + + DATAPERSISTENCE + UDINT + 32 + 992 + + 48 + + + + HWAMSADDR + UDINT + 32 + 1024 + + 49 + + + + HWCHNNO + UDINT + 32 + 1056 + + 50 + + + + APPLICATIONREQUEST + UDINT + 32 + 1088 + + 51 + + + + ACC + UDINT + 32 + 1120 + + 257 + + + + DEC + UDINT + 32 + 1152 + + 258 + + + + JERK + UDINT + 32 + 1184 + + 259 + + + + DELAY + UDINT + 32 + 1216 + + 260 + + + + OVERRIDETYPE + UDINT + 32 + 1248 + + 261 + + + + VELOJUMPFACTOR + UDINT + 32 + 1280 + + 262 + + + + REDUCTIONFEEDBACK + UDINT + 32 + 1312 + + 263 + + + + TOLERANCEBALLAUXAXIS + UDINT + 32 + 1344 + + 264 + + + + MAXPOSDEVIATIONAUXAXIS + UDINT + 32 + 1376 + + 265 + + + + FASTACC + UDINT + 32 + 1408 + + 266 + + + + FASTDEC + UDINT + 32 + 1440 + + 267 + + + + FASTJERK + UDINT + 32 + 1472 + + 268 + + + + REF_POS + UDINT + 32 + 1504 + + 65795 + + + + ENCSEARCHDIR + UDINT + 32 + 1536 + + 65793 + + + + ENCSYNCDIR + UDINT + 32 + 1568 + + 65794 + + + + ENCREFMODE + UDINT + 32 + 1600 + + 65799 + + + + + conditionalshow + + + + + _ST_NCADS_AxisParameter + 1664 + + IDXGRP + UDINT + 32 + 0 + + 16384 + + + + IDXOFFS + _ST_NCADS_IDXOFFS_AxisParameter + 1632 + 32 + + + + conditionalshow + + + + + _ST_NCADS_IDXOFFS_AxisState + 800 + + ONLINESTRUCT + UDINT + 32 + 0 + + 0 + + + + ERROR + UDINT + 32 + 32 + + 1 + + + + SETTASKCYCLE + UDINT + ACTPOS = TCNC_IDXOFFS_AXmappedENC | 0x00000002; // 0x00010002; ACTVELO = TCNC_IDXOFFS_AXmappedENC | 0x00000005; // 0x00010005; ACTACC = TCNC_IDXOFFS_AXmappedENC | 0x00000006; // 0x00010006; MODULOACTPOS = TCNC_IDXOFFS_AXmappedENC | 0x00000003; // 0x00010003; MODULOACTTURNS = TCNC_IDXOFFS_AXmappedENC | 0x00000004; // 0x00010004; ACTINCREMENTS = TCNC_IDXOFFS_AXmappedENC | 0x00000007; // 0x00010007; -]]>32649SETPOSUDINT329610SETVELOUDINT3212814SETACCUDINT3216015MODULOSETPOSUDINT3219211MODULOSETTURNSUDINT3222412SETDIRUDINT3225613TARGETPOSITIONUDINT3228819REMAININGTIMEANDPOSUDINT3232020STOPINFORMATIONUDINT3235224SETTASKCYCLE_WITHOUTCORRUDINT3238425SETPOS_WITHOUTCORRUDINT3241626SETVELO_WITHOUTCORRUDINT3244830SETACC_WITHOUTCORRUDINT3248031SETDIR_WITHOUTCORRUDINT3251229COUPLESTATEUDINT3254432CPLPARAMSUDINT3257634CPLFACTORUDINT3260835AXISCTRLLOOPIDXUDINT3264036AXISSETPOINTGENIDXUDINT3267237CPLCHARACVALUESUDINT3270438CAMINFOUDINT3273639CAMSTATUSUDINT3276840conditionalshow_ST_NCADS_AxisState832IDXGRPUDINT32016640IDXOFFS_ST_NCADS_IDXOFFS_AxisState80032conditionalshow_ST_NCADS_IDXOFFS_AxisFunctions1792RESETUDINT3201STOPUDINT32322CLEARUDINT32643EMERGENCYSTOPUDINT32964PARAMETRIZEDSTOPUDINT321285INITIALIZEUDINT321607ORIENTEDSTOPUDINT321929CALIBRUDINT3222416NEWTARGPOSUDINT3225617NEWTARGPOSANDVELOUDINT3228818CHANGEDYNAMICPARAMUDINT3232021UNIVERSALSTARTUDINT3235222SLAVEUNIVERSALSTARTUDINT3238423RELEASEAXISLOCKUDINT3241624SETEXTERNALERRORUDINT3244825SETPOSUDINT3248026SETCALFLAGUDINT3251227SETACTPOSUDINT3254428SETDRIVEPOSUDINT3257629SETENCODERSCALINGUDINT3260830SETPOSONTHEFLYUDINT3264031STARTUDINT3267232STARTEXTUDINT3270433STARTVELOCHANGEUDINT3273634ENABLEEXTGENUDINT3276835DISABLEEXTGENUDINT3280036REVERSINGSEQUENCEUDINT3283237STARTDRVOUTUDINT3286438STOPDRVOUTUDINT3289639CHANGEDRVOUTUDINT3292840JUMPTOOVERRIDEUDINT3296041EXTSETGENUNIVERSALSTARTUDINT3299243UNIVERSALTORQUESTARTUDINT32102445STARTSCOMUDINT32105648STOPSCOMUDINT32108849PHASINGREQEUSTUDINT32112052CPLUDINT32115264DECPLUDINT32118465CPLCHANGEUDINT32121666TABCPLCHANGEUDINT32124867STOPSLAVEUDINT32128068CPLTABUDINT32131269TABSLVACTIVCORUDINT32134470TABSLVLEAVECYCUDINT32137671TABSLVCOROFFSETUDINT32140872TABSLVSCALINGUDINT32144073CPLSOLOTABUDINT32147274CPLSYNCHRONIZINGUDINT32150475CAMSCALINGUDINT32153677DISABLEUDINT32156880ENABLEUDINT32160081CHANGEAXISCTRLLOOPUDINT32163282DRIVEDISABLEUDINT32166496DRIVEENABLEUDINT32169697RELEASEBRAKEUDINT32172898RECONFIGURATEUDINT321760112conditionalshow_ST_NCADS_AxisFunctions1824IDXGRPUDINT32016896IDXOFFS_ST_NCADS_IDXOFFS_AxisFunctions179232conditionalshow_ST_NCADS_Axis4320Parameter_ST_NCADS_AxisParameter16640State_ST_NCADS_AxisState8321664Functions_ST_NCADS_AxisFunctions18242496conditionalshow_ST_NCADS_IDXOFFS_TableParameter192MFREADCHARACVALUESUDINT32080WRITETABROWSUDINT323216777216WRITEMFTABROWSUDINT326483886080MFREADTABUDINT329634READSLAVEDYNAMICSUDINT3212835READMASTERPOSITIONUDINT3216036conditionalshow_ST_NCADS_TableParameter224IDXGRPUDINT32040960IDXOFFS_ST_NCADS_IDXOFFS_TableParameter19232conditionalshow_ST_NCADS_IDXOFFS_TableFunctions96CREATETABUDINT32065536CREATEMOTIONTABUDINT323265552DELETETABUDINT3264131072conditionalshow_ST_NCADS_TableFunctions128IDXGRPUDINT32041472IDXOFFS_ST_NCADS_IDXOFFS_TableFunctions9632conditionalshow_ST_NCADS_Table352Parameter_ST_NCADS_TableParameter2240Functions_ST_NCADS_TableFunctions128224conditionalshowT_AmsPort16UINTADSRDDEVINFO1344NETIDT_AmsNetID19264ItemTypeInputPORTT_AmsPort16256ItemTypeInputRDINFOBOOL8272ItemTypeInputTMOUTTIME322885000ItemTypeInputBUSYBOOL8320ItemTypeOutputERRBOOL8328ItemTypeOutputERRIDUDINT32352ItemTypeOutputDEVNAMESTRING(19)160384ItemTypeOutputDEVVERUDINT32544ItemTypeOutputPouTypeFunctionBlockhide_all_locals_TCMCGLOBAL7104NCPORT_TCMCUINT1664500ItemTypeInputNCPORT_TCMC_COUPLINGUINT1680500ItemTypeInputNCNETID_TCMCT_AmsNetID19296ItemTypeInputNCPORT_TCMC_CAMUINT16288500ItemTypeInputNCPORT_TCMC_CAM_FASTUINT16304500ItemTypeInputNCNETID_TCMC_CAMT_AmsNetID192320ItemTypeInputNCPORT_TCMC_SUPERPOSITIONUINT16512501ItemTypeInputNCPORT_TCMC_RESETUINT16528500ItemTypeInputNcDeviceInfoTcMainVersionDWORD32544ItemTypeOutputNcDeviceInfoTcSubVersionDWORD32576ItemTypeOutputNcDeviceInfoNcDriverVersionDWORD32608ItemTypeOutputNcDeviceInfoNcVersionDWORD32640ItemTypeOutputNcDeviceInfoNcNameSTRING(19)160672ItemTypeOutputAxis_ST_NCADS_Axis4320832ItemTypeOutputsuppress_warning_0C0228Table_ST_NCADS_Table3525152ItemTypeOutputsuppress_warning_0C0228NCPORT_TCNCCAMMING_TABLEFUNCTIONUINT165504500tTargetPosTimeOutTIME3255366000tADSTimeOutTIME3255681000tStopMonitoringTimeOutTIME325600100NCTOPLC_FEEDBACK_MAXWAITCYCLESINT16563210fbADSRDDEVINFOADSRDDEVINFO13445696DeviceVersionDWORD327040InitBOOL87072ReadDeviceInfoPouTypeFunctionBlockconditionalshowVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024LCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseLCLSVacuumSerialDriverLib{08500001-0000-0000-F000-000000000064}LCLSGeneralEventClassApplicationNamePort_851ChangeDate2024-02-16T10:57:48GeneratedCodeSize540672GlobalDataSize78856192 \ No newline at end of file + + 32 + 64 + + 9 + + + + SETPOS + UDINT + 32 + 96 + + 10 + + + + SETVELO + UDINT + 32 + 128 + + 14 + + + + SETACC + UDINT + 32 + 160 + + 15 + + + + MODULOSETPOS + UDINT + 32 + 192 + + 11 + + + + MODULOSETTURNS + UDINT + 32 + 224 + + 12 + + + + SETDIR + UDINT + 32 + 256 + + 13 + + + + TARGETPOSITION + UDINT + 32 + 288 + + 19 + + + + REMAININGTIMEANDPOS + UDINT + 32 + 320 + + 20 + + + + STOPINFORMATION + UDINT + 32 + 352 + + 24 + + + + SETTASKCYCLE_WITHOUTCORR + UDINT + 32 + 384 + + 25 + + + + SETPOS_WITHOUTCORR + UDINT + 32 + 416 + + 26 + + + + SETVELO_WITHOUTCORR + UDINT + 32 + 448 + + 30 + + + + SETACC_WITHOUTCORR + UDINT + 32 + 480 + + 31 + + + + SETDIR_WITHOUTCORR + UDINT + 32 + 512 + + 29 + + + + COUPLESTATE + UDINT + 32 + 544 + + 32 + + + + CPLPARAMS + UDINT + 32 + 576 + + 34 + + + + CPLFACTOR + UDINT + 32 + 608 + + 35 + + + + AXISCTRLLOOPIDX + UDINT + 32 + 640 + + 36 + + + + AXISSETPOINTGENIDX + UDINT + 32 + 672 + + 37 + + + + CPLCHARACVALUES + UDINT + 32 + 704 + + 38 + + + + CAMINFO + UDINT + 32 + 736 + + 39 + + + + CAMSTATUS + UDINT + activation status etc. + 32 + 768 + + 40 + + + + + conditionalshow + + + + + _ST_NCADS_AxisState + 832 + + IDXGRP + UDINT + 32 + 0 + + 16640 + + + + IDXOFFS + _ST_NCADS_IDXOFFS_AxisState + 800 + 32 + + + + conditionalshow + + + + + _ST_NCADS_IDXOFFS_AxisFunctions + 1792 + + RESET + UDINT + 32 + 0 + + 1 + + + + STOP + UDINT + 32 + 32 + + 2 + + + + CLEAR + UDINT + 32 + 64 + + 3 + + + + EMERGENCYSTOP + UDINT + 32 + 96 + + 4 + + + + PARAMETRIZEDSTOP + UDINT + 32 + 128 + + 5 + + + + INITIALIZE + UDINT + Initialize Axis + 32 + 160 + + 7 + + + + ORIENTEDSTOP + UDINT + 19.04.04 issue #2470 + 32 + 192 + + 9 + + + + CALIBR + UDINT + 32 + 224 + + 16 + + + + NEWTARGPOS + UDINT + 32 + 256 + + 17 + + + + NEWTARGPOSANDVELO + UDINT + 32 + 288 + + 18 + + + + CHANGEDYNAMICPARAM + UDINT + NEU: Neue Dynamikparameter (Acc;Dec) fuer Positionierung + 32 + 320 + + 21 + + + + UNIVERSALSTART + UDINT + 05.03.07: new 'axis start and restart' command with buffer mode (issue #2786+#3276) + 32 + 352 + + 22 + + + + SLAVEUNIVERSALSTART + UDINT + 24.02.09: decoupling command with succeding universal axis start commanded to a slave axis + 32 + 384 + + 23 + + + + RELEASEAXISLOCK + UDINT + 10.12.18 release axis lock for motion commands + 32 + 416 + + 24 + + + + SETEXTERNALERROR + UDINT + 06.10.04: Externen Achsfehler setzen (Laufzeitfehler) issue #2665 + 32 + 448 + + 25 + + + + SETPOS + UDINT + 32 + 480 + + 26 + + + + SETCALFLAG + UDINT + "ist referenziert"-Flag setzen + 32 + 512 + + 27 + + + + SETACTPOS + UDINT + nur Istwertsetzen ohne Sollwertaenderung !!! + 32 + 544 + + 28 + + + + SETDRIVEPOS + UDINT + antriebsseitiges Istwertsetzen + 32 + 576 + + 29 + + + + SETENCODERSCALING + UDINT + 17.07.08: "Fliegende Änderung des Skalierungsfaktors" + 32 + 608 + + 30 + + + + SETPOSONTHEFLY + UDINT + 29.11.05: "Fliegendes Istwert Setzen" (betrifft Ist - und Sollwert) (issue #3017) + 32 + 640 + + 31 + + + + START + UDINT + 32 + 672 + + 32 + + + + STARTEXT + UDINT + 32 + 704 + + 33 + + + + STARTVELOCHANGE + UDINT + special function for MMW + 32 + 736 + + 34 + + + + ENABLEEXTGEN + UDINT + enable/start external setpoint values + 32 + 768 + + 35 + + + + DISABLEEXTGEN + UDINT + disable/stop external setpoint values + 32 + 800 + + 36 + + + + REVERSINGSEQUENCE + UDINT + 32 + 832 + + 37 + + + + STARTDRVOUT + UDINT + 32 + 864 + + 38 + + + + STOPDRVOUT + UDINT + 32 + 896 + + 39 + + + + CHANGEDRVOUT + UDINT + 32 + 928 + + 40 + + + + JUMPTOOVERRIDE + UDINT + 04.11.04: jump to actual override value and froze them until change (issue #2697) + 32 + 960 + + 41 + + + + EXTSETGENUNIVERSALSTART + UDINT + 23.11.10: deactivation of external setpoint generator with succeding universal axis start command + 32 + 992 + + 43 + + + + UNIVERSALTORQUESTART + UDINT + 20181210 Fap - new 'axis torque control start and restart' command with buffer mode + 32 + 1024 + + 45 + + + + STARTSCOM + UDINT + start superposition (position compensation) - 21.12.04: nun auch als 'ReadWrite'-Kommando + 32 + 1056 + + 48 + + + + STOPSCOM + UDINT + stop superposition (position compensation) + 32 + 1088 + + 49 + + + + PHASINGREQEUST + UDINT + start/stop the additional phasing set point generator used for a master/slave phase shift + 32 + 1120 + + 52 + + + + CPL + UDINT + Achse koppeln + 32 + 1152 + + 64 + + + + DECPL + UDINT + Achse entkoppeln (und optional neue Endposition mit neuer Geschwindigkeit) + 32 + 1184 + + 65 + + + + CPLCHANGE + UDINT + Achse Koppelparams ändern + 32 + 1216 + + 66 + + + + TABCPLCHANGE + UDINT + 3x TabSlaveAxe Tabelle-Koppelparams ändern + 32 + 1248 + + 67 + + + + STOPSLAVE + UDINT + Slave-Stop (Diagonal-Slave / Flying Saw) + 32 + 1280 + + 68 + + + + CPLTAB + UDINT + TabSlaveAxe Koppelparams setzen + 32 + 1312 + + 69 + + + + TABSLVACTIVCOR + UDINT + 2x TabSlaveAxe Korrekturtabelle aktivieren (mit/ohne Aktivierungsposition) + 32 + 1344 + + 70 + + + + TABSLVLEAVECYC + UDINT + TabSlaveAxe Monozyklische Tabelle beenden + 32 + 1376 + + 71 + + + + TABSLVCOROFFSET + UDINT + TabSlaveAxe Letzter Korrektur Offset + 32 + 1408 + + 72 + + + + TABSLVSCALING + UDINT + NEU: Slave-Skalierung der Solo-Tabellenkopplung setzen + 32 + 1440 + + 73 + + + + CPLSOLOTAB + UDINT + Solo Tabellen Kopplung + 32 + 1472 + + 74 + + + + CPLSYNCHRONIZING + UDINT + Slave Synchronizing Generator ('GearInPos' and 'GearInVelo') + 32 + 1504 + + 75 + + + + CAMSCALING + UDINT + Slave Change CAM Scaling (Aenderung der Tabellenskalierung) (issue #2514) + 32 + 1536 + + 77 + + + + DISABLE + UDINT + Achse sperren + 32 + 1568 + + 80 + + + + ENABLE + UDINT + Achse reaktivieren + 32 + 1600 + + 81 + + + + CHANGEAXISCTRLLOOP + UDINT + NEU: Aenderung des aktiven Achsregelkreises + 32 + 1632 + + 82 + + + + DRIVEDISABLE + UDINT + Drive-Output der Achse sperren + 32 + 1664 + + 96 + + + + DRIVEENABLE + UDINT + Drive-Output der Achse reaktivieren + 32 + 1696 + + 97 + + + + RELEASEBRAKE + UDINT + Feststellbremse loesen (Eil/Schleich-Gruppe) + 32 + 1728 + + 98 + + + + RECONFIGURATE + UDINT + Achse zurueckfuehren in eigene PTP-Gruppe + 32 + 1760 + + 112 + + + + + conditionalshow + + + + + _ST_NCADS_AxisFunctions + 1824 + + IDXGRP + UDINT + 32 + 0 + + 16896 + + + + IDXOFFS + _ST_NCADS_IDXOFFS_AxisFunctions + 1792 + 32 + + + + conditionalshow + + + + + _ST_NCADS_Axis + 4320 + + Parameter + _ST_NCADS_AxisParameter + 1664 + 0 + + + State + _ST_NCADS_AxisState + 832 + 1664 + + + Functions + _ST_NCADS_AxisFunctions + 1824 + 2496 + + + + conditionalshow + + + + + _ST_NCADS_IDXOFFS_TableParameter + 192 + + MFREADCHARACVALUES + UDINT + read characteristic values of a motion function + 32 + 0 + + 80 + + + + WRITETABROWS + UDINT + write table + 32 + 32 + + 16777216 + + + + WRITEMFTABROWS + UDINT + write motion function table + 32 + 64 + + 83886080 + + + + MFREADTAB + UDINT + read motion function as data table + 32 + 96 + + 34 + + + + READSLAVEDYNAMICS + UDINT + read slave table position, velocity and acceleration related to a master position + 32 + 128 + + 35 + + + + READMASTERPOSITION + UDINT + read master table position related to slave position + 32 + 160 + + 36 + + + + + conditionalshow + + + + + _ST_NCADS_TableParameter + 224 + + IDXGRP + UDINT + 32 + 0 + + 40960 + + + + IDXOFFS + _ST_NCADS_IDXOFFS_TableParameter + 192 + 32 + + + + conditionalshow + + + + + _ST_NCADS_IDXOFFS_TableFunctions + 96 + + CREATETAB + UDINT + create table + 32 + 0 + + 65536 + + + + CREATEMOTIONTAB + UDINT + create motion function table + 32 + 32 + + 65552 + + + + DELETETAB + UDINT + delete tables + 32 + 64 + + 131072 + + + + + conditionalshow + + + + + _ST_NCADS_TableFunctions + 128 + + IDXGRP + UDINT + 32 + 0 + + 41472 + + + + IDXOFFS + _ST_NCADS_IDXOFFS_TableFunctions + 96 + 32 + + + + conditionalshow + + + + + _ST_NCADS_Table + 352 + + Parameter + _ST_NCADS_TableParameter + 224 + 0 + + + Functions + _ST_NCADS_TableFunctions + 128 + 224 + + + + conditionalshow + + + + + T_AmsPort + TwinCAT AMS port address. + 16 + UINT + + + ADSRDDEVINFO + ADS read device info command. + 1344 + + NETID + T_AmsNetID + Ams net id + 192 + 64 + + + ItemType + Input + + + + + PORT + T_AmsPort + Ads communication port + 16 + 256 + + + ItemType + Input + + + + + RDINFO + BOOL + Rising edge starts command execution + 8 + 272 + + + ItemType + Input + + + + + TMOUT + TIME + Maximum time allowed for the execution of this ADS command + 32 + 288 + + 5000 + + + + ItemType + Input + + + + + BUSY + BOOL + Busy flag + 8 + 320 + + + ItemType + Output + + + + + ERR + BOOL + Error flag + 8 + 328 + + + ItemType + Output + + + + + ERRID + UDINT + ADS error code + 32 + 352 + + + ItemType + Output + + + + + DEVNAME + STRING(19) + Device name + 160 + 384 + + + ItemType + Output + + + + + DEVVER + UDINT + Device version + 32 + 544 + + + ItemType + Output + + + + + + PouType + FunctionBlock + + + hide_all_locals + + + + + _TCMCGLOBAL + Global constants and parameters + 7104 + + NCPORT_TCMC + UINT + 20110511 type changed from INT to UINT + 16 + 64 + + 500 + + + + ItemType + Input + + + + + NCPORT_TCMC_COUPLING + UINT + 20110511 type changed from INT to UINT + 16 + 80 + + 500 + + + + ItemType + Input + + + + + NCNETID_TCMC + T_AmsNetID + 192 + 96 + + + + + + ItemType + Input + + + + + NCPORT_TCMC_CAM + UINT + 20110511 type changed from INT to UINT + 16 + 288 + + 500 + + + + ItemType + Input + + + + + NCPORT_TCMC_CAM_FAST + UINT + 20150728 KSt added + 16 + 304 + + 500 + + + + ItemType + Input + + + + + NCNETID_TCMC_CAM + T_AmsNetID + 192 + 320 + + + + + + ItemType + Input + + + + + NCPORT_TCMC_SUPERPOSITION + UINT + 20140930 KSt added + 16 + 512 + + 501 + + + + ItemType + Input + + + + + NCPORT_TCMC_RESET + UINT + 20211019 KSt added + 16 + 528 + + 500 + + + + ItemType + Input + + + + + NcDeviceInfoTcMainVersion + DWORD + 32 + 544 + + + ItemType + Output + + + + + NcDeviceInfoTcSubVersion + DWORD + 32 + 576 + + + ItemType + Output + + + + + NcDeviceInfoNcDriverVersion + DWORD + 32 + 608 + + + ItemType + Output + + + + + NcDeviceInfoNcVersion + DWORD + 32 + 640 + + + ItemType + Output + + + + + NcDeviceInfoNcName + STRING(19) + 160 + 672 + + + ItemType + Output + + + + + Axis + _ST_NCADS_Axis + IDXGRP and IDXOFFS constants of axis parameter/status/functions + 4320 + 832 + + + ItemType + Output + + + suppress_warning_0 + C0228 + + + + + Table + _ST_NCADS_Table + IDXGRP and IDXOFFS constants of table parameter/status/functions + 352 + 5152 + + + ItemType + Output + + + suppress_warning_0 + C0228 + + + + + NCPORT_TCNCCAMMING_TABLEFUNCTION + UINT + 16 + 5504 + + 500 + + + + tTargetPosTimeOut + TIME + 32 + 5536 + + 6000 + + + + tADSTimeOut + TIME + 32 + 5568 + + 1000 + + + + tStopMonitoringTimeOut + TIME + 32 + 5600 + + 100 + + + + NCTOPLC_FEEDBACK_MAXWAITCYCLES + INT + 16 + 5632 + + 10 + + + + fbADSRDDEVINFO + ADSRDDEVINFO + 1344 + 5696 + + + DeviceVersion + DWORD + 32 + 7040 + + + Init + BOOL + 8 + 7072 + + + ReadDeviceInfo + + + + PouType + FunctionBlock + + + conditionalshow + + + + + VERSION + 64 + + uiMajor + UINT + 16 + 0 + + + uiMinor + UINT + 16 + 16 + + + uiServicePack + UINT + 16 + 32 + + + uiPatch + UINT + 16 + 48 + + + + PlcAppSystemInfo + 2048 + + ObjId + OTCID + 32 + 0 + + + TaskCnt + UDINT + 32 + 32 + + + OnlineChangeCnt + UDINT + 32 + 64 + + + Flags + DWORD + 32 + 96 + + + AdsPort + UINT + 16 + 128 + + + BootDataLoaded + BOOL + 8 + 144 + + + OldBootData + BOOL + 8 + 152 + + + AppTimestamp + DT + 32 + 160 + + + KeepOutputsOnBP + BOOL + 8 + 192 + + + ShutdownInProgress + BOOL + 8 + 200 + + + LicensesPending + BOOL + 8 + 208 + + + BSODOccured + BOOL + 8 + 216 + + + LoggedIn + BOOL + 8 + 224 + + + TComSrvPtr + ITComObjectServer + 32 + 256 + + + TcComInterface + + + + + AppName + STRING(63) + 512 + 512 + + + ProjectName + STRING(63) + 512 + 1024 + + + + + + + + + + LCLSGeneralEventClass + Log event + + Critical + Critical + Critical + + + Error + Error + Error + + + Warning + Warning + Warning + + + Info + Info + Info + + + Verbose + Verbose + Verbose + + + + + + + + + + + + + + + LCLSVacuumSerialDriverLib + {08500001-0000-0000-F000-000000000064} + + + + + + + + LCLSGeneralEventClass + + + + + ApplicationName + Port_851 + + + ChangeDate + 2024-02-16T10:57:48 + + + GeneratedCodeSize + 540672 + + + GlobalDataSize + 78856192 + + + + + diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Com.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Com.TcPOU index 7ad0a97..fa463d3 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Com.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Com.TcPOU @@ -14,17 +14,17 @@ Also pass the number of LVC-4000 connected to the bus. This must be less than gc *) VAR_IN_OUT - iq_astLVC4000: ARRAY[1..gcMaxLVC4000] OF ST_SerLVC4000; - afbLVC4000SerialDriver: ARRAY[1..gcMaxLVC4000] OF FB_LVC4000SerialDriver; - SerialRXBuffer: ComBuffer; - SerialTXBuffer: ComBuffer; + iq_astLVC4000: ARRAY[1..gcMaxLVC4000] OF ST_SerLVC4000; + afbLVC4000SerialDriver: ARRAY[1..gcMaxLVC4000] OF FB_LVC4000SerialDriver; + SerialRXBuffer: ComBuffer; + SerialTXBuffer: ComBuffer; END_VAR VAR_INPUT - i_iQty : INT := 0; + i_iQty : INT := 0; END_VAR VAR - iUnit: INT := 1; - tTimeOut: TIME := TIME#1s0ms; + iUnit: INT := 1; + tTimeOut: TIME := TIME#1s0ms; END_VAR]]> i_iQty THEN - iUnit:= 1; - END_IF + (* reset for next time *) + afbLVC4000SerialDriver[iUnit]( i_xExecute:= FALSE, iq_stLVC4000:=iq_astLVC4000[iUnit], iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); + (* select next pump *) + iUnit := iUnit + 1; + IF iUnit > i_iQty THEN + iUnit:= 1; + END_IF END_IF]]> diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000SerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000SerialDriver.TcPOU index 998d721..fdffbf5 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000SerialDriver.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000SerialDriver.TcPOU @@ -3,34 +3,34 @@ (* rising edge trigger *) rtExecute(CLK:= i_xExecute); IF rtExecute.Q THEN - q_xDone := FALSE; - q_xError := FALSE; - q_sResult:= ''; - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 10; + q_xDone := FALSE; + q_xError := FALSE; + q_sResult:= ''; + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 10; END_IF CASE iStep OF - 0: (* idle *) - ; + 0: (* idle *) + ; - (* Get output *) - 10: - sCmd := 'getOut'; - fbtrans.i_xExecute := TRUE; - IF fbtrans.q_xDone THEN - iq_stLVC4000.i_iOut := STRING_TO_INT(fbtrans.q_sResponseData); - iStep := 8000; - a_ClearTrans(); - ELSIF fbtrans.q_xError THEN - a_ErrorMesg(); - iStep := 9000; - a_ClearTrans(); - END_IF + (* Get output *) + 10: + sCmd := 'getOut'; + fbtrans.i_xExecute := TRUE; + IF fbtrans.q_xDone THEN + iq_stLVC4000.i_iOut := STRING_TO_INT(fbtrans.q_sResponseData); + iStep := 8000; + a_ClearTrans(); + ELSIF fbtrans.q_xError THEN + a_ErrorMesg(); + iStep := 9000; + a_ClearTrans(); + END_IF - 8000: (* done *) - q_xDone := TRUE; - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF + 8000: (* done *) + q_xDone := TRUE; + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF - 9000: - q_xError := TRUE; + 9000: + q_xError := TRUE; END_CASE //call transaction fbTrans( - i_iAddress:= iq_stLVC4000.iAddr, - i_tTimeOut:= i_tTimeOut, - i_sCmd:=sCmd, - i_sParam:=sSendData, - iq_stSerialRXBuffer:= iq_stSerialRXBuffer, - iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); + i_iAddress:= iq_stLVC4000.iAddr, + i_tTimeOut:= i_tTimeOut, + i_sCmd:=sCmd, + i_sParam:=sSendData, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); iq_stLVC4000.xTimeout := fbtrans.q_xTimeout; q_sLastSentString := fbtrans.q_sLastSentString; @@ -91,10 +91,10 @@ q_sLastReceivedString := fbtrans.q_sLastReceivedString;]]> - q_sResult);]]> + q_sResult);]]> @@ -104,16 +104,16 @@ fbtrans.i_xExecute := TRUE; fbtrans.i_sCmd:= ''; fbtrans.i_sParam := ''; fbTrans( - i_iAddress:= iq_stLVC4000.iAddr, - i_tTimeOut:= i_tTimeOut, - iq_stSerialRXBuffer:= iq_stSerialRXBuffer, - iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); + i_iAddress:= iq_stLVC4000.iAddr, + i_tTimeOut:= i_tTimeOut, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); fbtrans.i_xExecute := FALSE; fbTrans( - i_iAddress:= iq_stLVC4000.iAddr, - i_tTimeOut:= i_tTimeOut, - iq_stSerialRXBuffer:= iq_stSerialRXBuffer, - iq_stSerialTXBuffer:= iq_stSerialTXBuffer );]]> + i_iAddress:= iq_stLVC4000.iAddr, + i_tTimeOut:= i_tTimeOut, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer );]]> diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Transaction.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Transaction.TcPOU index cc218a6..2c42b67 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Transaction.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/LVDT/MacroSensors/FB_LVC4000Transaction.TcPOU @@ -3,50 +3,50 @@ @@ -55,95 +55,95 @@ END_VAR (* rising edge trigger *) rtExecute(CLK:= i_xExecute); IF rtExecute.Q THEN - q_xDone := FALSE; - q_sResponseData := ''; - q_xError := FALSE; - //q_xTimeout := FALSE; - q_sResult:= ''; - q_sLastSentString := ''; - q_sLastReceivedString:= ''; - iStep := 10; + q_xDone := FALSE; + q_sResponseData := ''; + q_xError := FALSE; + //q_xTimeout := FALSE; + q_sResult:= ''; + q_sLastSentString := ''; + q_sLastReceivedString:= ''; + iStep := 10; END_IF CASE iStep OF - 0: - ; (* idle *) + 0: + ; (* idle *) - 10: (* clear com buffers *) - fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); - fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); - rAddress := INT_TO_REAL(i_iAddress); - (* build the send string *) - IF i_sParam = '' THEN - fbFormatString( sFormat:= ':%02.0f %s $R', - arg1:= F_REAL(rAddress), - arg2:= F_STRING(i_sCmd), - sOut=> sSendString); - ELSE - fbFormatString( sFormat:= ':%02.0f %s %s $R', - arg1:= F_REAL(rAddress), - arg2:= F_STRING(i_sCmd), - arg3:= F_STRING(i_sParam), - sOut=> sSendString); - END_IF - (* send it *) - fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); - q_sLastSentString := sSendString; - iStep := iStep + 10; + 10: (* clear com buffers *) + fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); + fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); + rAddress := INT_TO_REAL(i_iAddress); + (* build the send string *) + IF i_sParam = '' THEN + fbFormatString( sFormat:= ':%02.0f %s $R', + arg1:= F_REAL(rAddress), + arg2:= F_STRING(i_sCmd), + sOut=> sSendString); + ELSE + fbFormatString( sFormat:= ':%02.0f %s %s $R', + arg1:= F_REAL(rAddress), + arg2:= F_STRING(i_sCmd), + arg3:= F_STRING(i_sParam), + sOut=> sSendString); + END_IF + (* send it *) + fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); + q_sLastSentString := sSendString; + iStep := iStep + 10; - 20: (* Finish sending the String *) - IF fbSendString.Busy THEN - fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); - ELSIF fbSendString.Error <> 0 THEN - q_sResult := CONCAT('In step 20 fbSendString resulted in error: ', INT_TO_STRING(fbSendString.Error)); - iStep := 9000; - ELSIF NOT fbSendString.Busy THEN - IF i_sCmd = 'getOut' THEN - iStep := iStep + 10; - ELSE - iStep := 100; //no response? - END_IF - END_IF - (* Reset receive *) - fbReceiveString( - Reset:= TRUE, - ReceivedString:= sReceivedString, - RXbuffer:= iq_stSerialRXBuffer ); - tonTimeout(IN:= FALSE); + 20: (* Finish sending the String *) + IF fbSendString.Busy THEN + fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); + ELSIF fbSendString.Error <> 0 THEN + q_sResult := CONCAT('In step 20 fbSendString resulted in error: ', INT_TO_STRING(fbSendString.Error)); + iStep := 9000; + ELSIF NOT fbSendString.Busy THEN + IF i_sCmd = 'getOut' THEN + iStep := iStep + 10; + ELSE + iStep := 100; //no response? + END_IF + END_IF + (* Reset receive *) + fbReceiveString( + Reset:= TRUE, + ReceivedString:= sReceivedString, + RXbuffer:= iq_stSerialRXBuffer ); + tonTimeout(IN:= FALSE); - 30: (* Get reply *) - fbReceiveString( - Prefix:= , - Suffix:= '$R', - Timeout:= i_tTimeOut, - Reset:= FALSE, - ReceivedString:= sReceivedString, - RXbuffer:= iq_stSerialRXBuffer ); - tonTimeout(IN:= TRUE, PT:= i_tTimeOut); - IF fbReceiveString.Error <> 0 AND fbReceiveString.Error <> 16#1008 THEN //16#1008 is timeout error - q_sResult := CONCAT('In step 30 fbReceiveString resulted in error: ', INT_TO_STRING(fbReceiveString.Error)); - iStep := 9000; - ELSIF fbReceiveString.RxTimeout OR tonTimeout.Q THEN - q_sResult := 'Device failed to reply within timeout period'; - q_xTimeout := TRUE; - iStep := 9000; - ELSIF fbReceiveString.StringReceived THEN - q_xTimeout := FALSE; //no timeout - q_sLastReceivedString := sReceivedString; - q_sResponseData := sReceivedString; - q_sResult := 'Success.'; - q_xDone:= TRUE; - iStep := 100; - END_IF + 30: (* Get reply *) + fbReceiveString( + Prefix:= , + Suffix:= '$R', + Timeout:= i_tTimeOut, + Reset:= FALSE, + ReceivedString:= sReceivedString, + RXbuffer:= iq_stSerialRXBuffer ); + tonTimeout(IN:= TRUE, PT:= i_tTimeOut); + IF fbReceiveString.Error <> 0 AND fbReceiveString.Error <> 16#1008 THEN //16#1008 is timeout error + q_sResult := CONCAT('In step 30 fbReceiveString resulted in error: ', INT_TO_STRING(fbReceiveString.Error)); + iStep := 9000; + ELSIF fbReceiveString.RxTimeout OR tonTimeout.Q THEN + q_sResult := 'Device failed to reply within timeout period'; + q_xTimeout := TRUE; + iStep := 9000; + ELSIF fbReceiveString.StringReceived THEN + q_xTimeout := FALSE; //no timeout + q_sLastReceivedString := sReceivedString; + q_sResponseData := sReceivedString; + q_sResult := 'Success.'; + q_xDone:= TRUE; + iStep := 100; + END_IF - 100: (* done *) - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF + 100: (* done *) + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF - 9000: - q_xError := TRUE; + 9000: + q_xError := TRUE; diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TD20_COM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TD20_COM.TcPOU index bce8998..97873a7 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TD20_COM.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TD20_COM.TcPOU @@ -3,16 +3,16 @@ @@ -21,27 +21,27 @@ END_VAR (* scan the pumps one at a time *)//MG??? fbTD20SerialDriver( - i_xExecute:= TRUE, - i_tTimeOut:= tTimeOut, - i_wControlWord:= 16#0000, - iq_stSerialRXBuffer:= SerialRXBuffer, - iq_stSerialTXBuffer:= SerialTXBuffer, - q_xDone=> , - q_xError=> , - q_xTimeout=> , - q_sResult=> , - q_stStatus=> astTD20Status); + i_xExecute:= TRUE, + i_tTimeOut:= tTimeOut, + i_wControlWord:= 16#0000, + iq_stSerialRXBuffer:= SerialRXBuffer, + iq_stSerialTXBuffer:= SerialTXBuffer, + q_xDone=> , + q_xError=> , + q_xTimeout=> , + q_sResult=> , + q_stStatus=> astTD20Status); IF fbTD20SerialDriver.q_xDone - OR fbTD20SerialDriver.q_xError - OR fbTD20SerialDriver.q_xTimeout THEN - (* reset for next time *) - fbTD20SerialDriver(i_xExecute:= FALSE, iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); + OR fbTD20SerialDriver.q_xError + OR fbTD20SerialDriver.q_xTimeout THEN + (* reset for next time *) + fbTD20SerialDriver(i_xExecute:= FALSE, iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); END_IF - - ]]> + + ]]> \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TO_PTM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TO_PTM.TcPOU index f8a458f..0afb2d2 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TO_PTM.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_OERLIKON_TO_PTM.TcPOU @@ -3,8 +3,8 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20SerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20SerialDriver.TcPOU index f15af7c..b01759f 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20SerialDriver.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20SerialDriver.TcPOU @@ -3,37 +3,37 @@ @@ -42,151 +42,151 @@ END_VAR (* rising edge trigger *) rtExecute(CLK:= i_xExecute); IF rtExecute.Q THEN - q_xDone := FALSE; - q_xError := FALSE; - q_xTimeout := FALSE; - q_sResult:= ''; - iStep := 10; + q_xDone := FALSE; + q_xError := FALSE; + q_xTimeout := FALSE; + q_sResult:= ''; + iStep := 10; END_IF CASE iStep OF - 0: (* idle *) - ; + 0: (* idle *) + ; + + 10: (* assure rising edge *) + fbTD20Transaction.i_xExecute := FALSE; + iStep := iStep + 10; + + 20:(* get P20 *) + fbTD20Transaction.i_wPKE := 16#1000 OR 20; + fbTD20Transaction.i_bIND := 0; + fbTD20Transaction.i_dwPWE := 0; + fbTD20Transaction.i_xExecute := TRUE; + + IF fbTD20Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD20Transaction.q_xDone THEN + fbTD20Transaction.i_xExecute := FALSE; + IF fbTD20Transaction.q_wPKE = (16#1000 OR 20) THEN + q_stStatus.wCriticalFreq_P20 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 30:(* get P21 *) + fbTD20Transaction.i_wPKE := 16#1000 OR 21; + fbTD20Transaction.i_bIND := 0; + fbTD20Transaction.i_dwPWE := 0; + fbTD20Transaction.i_xExecute := TRUE; + IF fbTD20Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD20Transaction.q_xDone THEN + fbTD20Transaction.i_xExecute := FALSE; + IF fbTD20Transaction.q_wPKE = (16#1000 OR 21) THEN + q_stStatus.wMaxCurrentFactor_P21 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 40:(* get P24 *) + fbTD20Transaction.i_wPKE := 16#1000 OR 24; + fbTD20Transaction.i_bIND := 0; + fbTD20Transaction.i_dwPWE := 0; + fbTD20Transaction.i_xExecute := TRUE; + IF fbTD20Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD20Transaction.q_xDone THEN + fbTD20Transaction.i_xExecute := FALSE; + IF fbTD20Transaction.q_wPKE = (16#1000 OR 24) THEN + q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 50:(* get P32 *) + fbTD20Transaction.i_wPKE := 16#1000 OR 32; + fbTD20Transaction.i_bIND := 0; + fbTD20Transaction.i_dwPWE := 0; + fbTD20Transaction.i_xExecute := TRUE; + IF fbTD20Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD20Transaction.q_xDone THEN + fbTD20Transaction.i_xExecute := FALSE; + IF fbTD20Transaction.q_wPKE = (16#1000 OR 32) THEN + q_stStatus.wMaxRunUpTime_P32 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 60:(* get P171 index 0 *) + fbTD20Transaction.i_wPKE := 16#6000 OR 171; + fbTD20Transaction.i_bIND := 0; + fbTD20Transaction.i_dwPWE := 0; + fbTD20Transaction.i_xExecute := TRUE; + IF fbTD20Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + ELSIF fbTD20Transaction.q_xDone THEN + fbTD20Transaction.i_xExecute := FALSE; + IF fbTD20Transaction.q_wPKE = (16#4000 OR 171) THEN + q_stStatus.wErrorCode_P171 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); + iStep := 8000; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + + 8000: (* done *) + q_xDone := TRUE; + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF + + 9000: (* Transaction Error *) + q_xError := TRUE; + + 9100: (* Driver Error *) + q_xError := TRUE; - 10: (* assure rising edge *) - fbTD20Transaction.i_xExecute := FALSE; - iStep := iStep + 10; - - 20:(* get P20 *) - fbTD20Transaction.i_wPKE := 16#1000 OR 20; - fbTD20Transaction.i_bIND := 0; - fbTD20Transaction.i_dwPWE := 0; - fbTD20Transaction.i_xExecute := TRUE; - - IF fbTD20Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - ELSIF fbTD20Transaction.q_xDone THEN - fbTD20Transaction.i_xExecute := FALSE; - IF fbTD20Transaction.q_wPKE = (16#1000 OR 20) THEN - q_stStatus.wCriticalFreq_P20 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); - iStep := iStep + 10; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - - 30:(* get P21 *) - fbTD20Transaction.i_wPKE := 16#1000 OR 21; - fbTD20Transaction.i_bIND := 0; - fbTD20Transaction.i_dwPWE := 0; - fbTD20Transaction.i_xExecute := TRUE; - IF fbTD20Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - ELSIF fbTD20Transaction.q_xDone THEN - fbTD20Transaction.i_xExecute := FALSE; - IF fbTD20Transaction.q_wPKE = (16#1000 OR 21) THEN - q_stStatus.wMaxCurrentFactor_P21 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); - iStep := iStep + 10; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - - 40:(* get P24 *) - fbTD20Transaction.i_wPKE := 16#1000 OR 24; - fbTD20Transaction.i_bIND := 0; - fbTD20Transaction.i_dwPWE := 0; - fbTD20Transaction.i_xExecute := TRUE; - IF fbTD20Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - ELSIF fbTD20Transaction.q_xDone THEN - fbTD20Transaction.i_xExecute := FALSE; - IF fbTD20Transaction.q_wPKE = (16#1000 OR 24) THEN - q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); - iStep := iStep + 10; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - - 50:(* get P32 *) - fbTD20Transaction.i_wPKE := 16#1000 OR 32; - fbTD20Transaction.i_bIND := 0; - fbTD20Transaction.i_dwPWE := 0; - fbTD20Transaction.i_xExecute := TRUE; - IF fbTD20Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - ELSIF fbTD20Transaction.q_xDone THEN - fbTD20Transaction.i_xExecute := FALSE; - IF fbTD20Transaction.q_wPKE = (16#1000 OR 32) THEN - q_stStatus.wMaxRunUpTime_P32 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); - iStep := iStep + 10; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - - 60:(* get P171 index 0 *) - fbTD20Transaction.i_wPKE := 16#6000 OR 171; - fbTD20Transaction.i_bIND := 0; - fbTD20Transaction.i_dwPWE := 0; - fbTD20Transaction.i_xExecute := TRUE; - IF fbTD20Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - ELSIF fbTD20Transaction.q_xDone THEN - fbTD20Transaction.i_xExecute := FALSE; - IF fbTD20Transaction.q_wPKE = (16#4000 OR 171) THEN - q_stStatus.wErrorCode_P171 := DWORD_TO_WORD(fbTD20Transaction.q_dwPWE); - iStep := 8000; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - - 8000: (* done *) - q_xDone := TRUE; - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF - - 9000: (* Transaction Error *) - q_xError := TRUE; - - 9100: (* Driver Error *) - q_xError := TRUE; - END_CASE fbTD20Transaction( - i_wControlWord:= i_wControlWord, - i_tTimeOut:= i_tTimeOut, - iq_stSerialRXBuffer:= iq_stSerialRXBuffer, - iq_stSerialTXBuffer:= iq_stSerialTXBuffer, - q_wStatusWord=> q_stStatus.wStatusWord, - q_wFrequency_P3=> q_stStatus.wFrequency_P3, - q_wVoltage_P4=> q_stStatus.wVoltage_P4, - q_wMotorCurrent_P5=> q_stStatus.wMotorCurrent_P5, - q_wConverterTemp_P11=> q_stStatus.wConverterTemp_P11, - q_wPumpTemp_P127=> q_stStatus.wPumpTemp_P127); + i_wControlWord:= i_wControlWord, + i_tTimeOut:= i_tTimeOut, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer, + q_wStatusWord=> q_stStatus.wStatusWord, + q_wFrequency_P3=> q_stStatus.wFrequency_P3, + q_wVoltage_P4=> q_stStatus.wVoltage_P4, + q_wMotorCurrent_P5=> q_stStatus.wMotorCurrent_P5, + q_wConverterTemp_P11=> q_stStatus.wConverterTemp_P11, + q_wPumpTemp_P127=> q_stStatus.wPumpTemp_P127); IF fbTD20Transaction.q_xError THEN - a_ClearStatus(); + a_ClearStatus(); END_IF q_abLastSentArray := fbTD20Transaction.q_abLastSentArray; @@ -209,10 +209,10 @@ q_stStatus.wErrorCode_P171 := 0;]]> - q_sResult); + q_sResult); a_ClearStatus(); q_xTimeout := fbTD20Transaction.q_xTimeout;]]> @@ -220,66 +220,13 @@ q_xTimeout := fbTD20Transaction.q_xTimeout;]]> - q_sResult); + q_sResult); a_ClearStatus();]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20Transaction.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20Transaction.TcPOU index 916ed01..72daf67 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20Transaction.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/FB_TD20Transaction.TcPOU @@ -3,68 +3,68 @@ @@ -73,151 +73,151 @@ END_VAR (* rising edge trigger *) rtExecute(CLK:= i_xExecute); IF rtExecute.Q THEN - q_xDone := FALSE; - q_xError := FALSE; - q_xTimeout := FALSE; - q_sResult:= ''; - MEMSET(destAddr:=ADR(q_abSendData), fillByte:=0, n:=SIZEOF(q_abSendData)); - MEMSET(destAddr:=ADR(q_abResponseData), fillByte:=0, n:=SIZEOF(q_abResponseData)); - iStep := 10; + q_xDone := FALSE; + q_xError := FALSE; + q_xTimeout := FALSE; + q_sResult:= ''; + MEMSET(destAddr:=ADR(q_abSendData), fillByte:=0, n:=SIZEOF(q_abSendData)); + MEMSET(destAddr:=ADR(q_abResponseData), fillByte:=0, n:=SIZEOF(q_abResponseData)); + iStep := 10; END_IF CASE iStep OF - 0: - ; (* idle *) - - 10: (* clear com buffers *) - fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); - fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); - - (* build the send data *) - (* byte 0 STX *) - q_abSendData[0] := 2; (* STX *) - - (* byte 1 LGE - Length *) - q_abSendData[1] := 22; - - (* byte 2 ADR - Address for RS-485, use 0 for RS-232 *) - q_abSendData[2] := i_bAddress; - - (* bytes 3-4 PKE - Parameter Number and Type of Access *) - wTemp := HOST_TO_BE16(i_wPKE); - MEMCPY(destAddr:= ADR(q_abSendData[3]), srcAddr:=ADR(wTemp), n:=2); - - (* byte 5 is reserved *) - (* byte 6 IND - Parameter index *) - q_abSendData[6] := i_bIND; - - (* bytes 7-10 - Parameter Value *) - dwTemp := HOST_TO_BE32(i_dwPWE); - MEMCPY(destAddr:= ADR(q_abSendData[7]), srcAddr:=ADR(dwTemp), n:=4); - - (* bytes 11-12 - control word *) - wTemp := HOST_TO_BE16(i_wControlWord); - MEMCPY(destAddr:= ADR(q_abSendData[11]), srcAddr:=ADR(wTemp), n:=2); - - (* rest of the bytes for any read or write are 0 *) - (* generate checksum *) - q_abSendData[23] := F_CalcTD20Checksum(i_abData:=q_abSendData); - - (* send the data *) - fbSendData( - pSendData:= ADR(q_abSendData), - Length:= 24, - TXbuffer:= iq_stSerialTXBuffer); - - - q_abLastSentArray := q_abSendData; - iStep := iStep + 10; - - 20: (* Finish sending the data *) - IF fbSendData.Busy THEN - fbSendData( TXbuffer:= iq_stSerialTXBuffer ); - ELSIF fbSendData.Error <> 0 THEN - q_sResult := CONCAT('In step 20 fbSendData resulted in error: ', INT_TO_STRING(fbSendData.Error)); - iStep := 9000; - ELSIF NOT fbSendData.Busy THEN - iStep := iStep + 10; - END_IF - (* Reset receive *) - fbReceiveData( - pReceiveData:= ADR(q_abResponseData), - Reset:= TRUE, - RXbuffer:= iq_stSerialRXBuffer); - tonTimeout(IN:= FALSE); - - 30: (* Get reply *) - fbReceiveData( - pReceiveData:= ADR(q_abResponseData), - SizeReceiveData:= 24, - Timeout:= i_tTimeOut, - Reset:= FALSE, - RXbuffer:= iq_stSerialRXBuffer, - pPrefix := ADR(nPrefix), LenPrefix:=1 ); - tonTimeout(IN:= TRUE, PT:= i_tTimeOut); - IF fbReceiveData.Error <> 0 THEN - q_sResult := CONCAT('In step 30 fbReceiveData resulted in error: ', INT_TO_STRING(fbReceiveData.Error)); - iStep := 9000; - ELSIF fbReceiveData.RxTimeout OR tonTimeout.Q THEN - q_sResult := 'Device failed to reply within timeout period'; - q_xTimeout := TRUE; - iStep := 9000; - ELSIF fbReceiveData.DataReceived THEN - q_abLastReceivedArray := q_abResponseData; - bRXChecksum := F_CalcTD20Checksum(q_abResponseData); - bRXAddress := q_abResponseData[2]; - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[3]), n:=2); - q_wPKE := BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(dwTemp) , srcAddr:=ADR(q_abResponseData[7]), n:=4); - q_dwPWE := BE32_TO_HOST(dwTemp); - - IF bRXChecksum <> q_abResponseData[23] THEN - q_sResult := 'Invalid checksum on received data.'; - iStep := 9000; - ELSIF i_bAddress <> bRXAddress THEN - q_sResult := 'Invalid unit address on received data.'; - iStep := 9000; - ELSIF (q_wPKE AND 16#F000) = 2#0111000000000000 THEN - q_sResult := 'Frequency converter cannot run the command.'; - iStep := 9000; - ELSIF (Q_wPKE AND 16#F000) = 2#1000000000000000 THEN - q_sResult := 'During write access: no permission to write.'; - iStep := 9000; - ELSE - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[11]), n:=2); - q_wStatusWord := BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[13]), n:=2); - q_wFrequency_P3:= BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[21]), n:=2); - q_wVoltage_P4:= BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[17]), n:=2); - q_wMotorCurrent_P5:= BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[15]), n:=2); - q_wConverterTemp_P11:= BE16_TO_HOST(wTemp); - MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[19]), n:=2); - q_wPumpTemp_P127:= BE16_TO_HOST(wTemp); - q_sResult := 'Success.'; - q_xDone:= TRUE; - iStep := 100; - END_IF - END_IF - - 100: (* done *) - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF - - 9000: - q_wPKE:= 0; - q_dwPWE:= 0; - q_wStatusWord:= 0; - q_wFrequency_P3:= 0; - q_wVoltage_P4:= 0; - q_wMotorCurrent_P5:= 0; - q_wConverterTemp_P11:= 0; - q_wPumpTemp_P127:= 0; - q_xError := TRUE;; + 0: + ; (* idle *) + + 10: (* clear com buffers *) + fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); + fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); + + (* build the send data *) + (* byte 0 STX *) + q_abSendData[0] := 2; (* STX *) + + (* byte 1 LGE - Length *) + q_abSendData[1] := 22; + + (* byte 2 ADR - Address for RS-485, use 0 for RS-232 *) + q_abSendData[2] := i_bAddress; + + (* bytes 3-4 PKE - Parameter Number and Type of Access *) + wTemp := HOST_TO_BE16(i_wPKE); + MEMCPY(destAddr:= ADR(q_abSendData[3]), srcAddr:=ADR(wTemp), n:=2); + + (* byte 5 is reserved *) + (* byte 6 IND - Parameter index *) + q_abSendData[6] := i_bIND; + + (* bytes 7-10 - Parameter Value *) + dwTemp := HOST_TO_BE32(i_dwPWE); + MEMCPY(destAddr:= ADR(q_abSendData[7]), srcAddr:=ADR(dwTemp), n:=4); + + (* bytes 11-12 - control word *) + wTemp := HOST_TO_BE16(i_wControlWord); + MEMCPY(destAddr:= ADR(q_abSendData[11]), srcAddr:=ADR(wTemp), n:=2); + + (* rest of the bytes for any read or write are 0 *) + (* generate checksum *) + q_abSendData[23] := F_CalcTD20Checksum(i_abData:=q_abSendData); + + (* send the data *) + fbSendData( + pSendData:= ADR(q_abSendData), + Length:= 24, + TXbuffer:= iq_stSerialTXBuffer); + + + q_abLastSentArray := q_abSendData; + iStep := iStep + 10; + + 20: (* Finish sending the data *) + IF fbSendData.Busy THEN + fbSendData( TXbuffer:= iq_stSerialTXBuffer ); + ELSIF fbSendData.Error <> 0 THEN + q_sResult := CONCAT('In step 20 fbSendData resulted in error: ', INT_TO_STRING(fbSendData.Error)); + iStep := 9000; + ELSIF NOT fbSendData.Busy THEN + iStep := iStep + 10; + END_IF + (* Reset receive *) + fbReceiveData( + pReceiveData:= ADR(q_abResponseData), + Reset:= TRUE, + RXbuffer:= iq_stSerialRXBuffer); + tonTimeout(IN:= FALSE); + + 30: (* Get reply *) + fbReceiveData( + pReceiveData:= ADR(q_abResponseData), + SizeReceiveData:= 24, + Timeout:= i_tTimeOut, + Reset:= FALSE, + RXbuffer:= iq_stSerialRXBuffer, + pPrefix := ADR(nPrefix), LenPrefix:=1 ); + tonTimeout(IN:= TRUE, PT:= i_tTimeOut); + IF fbReceiveData.Error <> 0 THEN + q_sResult := CONCAT('In step 30 fbReceiveData resulted in error: ', INT_TO_STRING(fbReceiveData.Error)); + iStep := 9000; + ELSIF fbReceiveData.RxTimeout OR tonTimeout.Q THEN + q_sResult := 'Device failed to reply within timeout period'; + q_xTimeout := TRUE; + iStep := 9000; + ELSIF fbReceiveData.DataReceived THEN + q_abLastReceivedArray := q_abResponseData; + bRXChecksum := F_CalcTD20Checksum(q_abResponseData); + bRXAddress := q_abResponseData[2]; + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[3]), n:=2); + q_wPKE := BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(dwTemp) , srcAddr:=ADR(q_abResponseData[7]), n:=4); + q_dwPWE := BE32_TO_HOST(dwTemp); + + IF bRXChecksum <> q_abResponseData[23] THEN + q_sResult := 'Invalid checksum on received data.'; + iStep := 9000; + ELSIF i_bAddress <> bRXAddress THEN + q_sResult := 'Invalid unit address on received data.'; + iStep := 9000; + ELSIF (q_wPKE AND 16#F000) = 2#0111000000000000 THEN + q_sResult := 'Frequency converter cannot run the command.'; + iStep := 9000; + ELSIF (Q_wPKE AND 16#F000) = 2#1000000000000000 THEN + q_sResult := 'During write access: no permission to write.'; + iStep := 9000; + ELSE + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[11]), n:=2); + q_wStatusWord := BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[13]), n:=2); + q_wFrequency_P3:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[21]), n:=2); + q_wVoltage_P4:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[17]), n:=2); + q_wMotorCurrent_P5:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[15]), n:=2); + q_wConverterTemp_P11:= BE16_TO_HOST(wTemp); + MEMCPY(destAddr:=ADR(wTemp) , srcAddr:=ADR(q_abResponseData[19]), n:=2); + q_wPumpTemp_P127:= BE16_TO_HOST(wTemp); + q_sResult := 'Success.'; + q_xDone:= TRUE; + iStep := 100; + END_IF + END_IF + + 100: (* done *) + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF + + 9000: + q_wPKE:= 0; + q_dwPWE:= 0; + q_wStatusWord:= 0; + q_wFrequency_P3:= 0; + q_wVoltage_P4:= 0; + q_wMotorCurrent_P5:= 0; + q_wConverterTemp_P11:= 0; + q_wPumpTemp_P127:= 0; + q_xError := TRUE;; diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/F_CalcTD20Checksum.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/F_CalcTD20Checksum.TcPOU index 0bc6a57..adb8033 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/F_CalcTD20Checksum.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD20/F_CalcTD20Checksum.TcPOU @@ -3,17 +3,17 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU index d38566f..4e4f66b 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_OERLIKON_TD400_TO_PTM.TcPOU @@ -3,12 +3,12 @@ i_stControl.wSetSetpointFreq_P24 THEN - nOldSetSetpointFreq_P24 := i_stControl.wSetSetpointFreq_P24; + nOldSetSetpointFreq_P24 := i_stControl.wSetSetpointFreq_P24; bSetFreq := TRUE; END_IF @@ -92,25 +92,25 @@ CASE iStep OF fbTD400Transaction.i_dwPWE := WORD_TO_DWORD(i_stControl.wSetSetpointFreq_P24); fbTD400Transaction.i_xExecute := TRUE; - IF fbTD400Transaction.q_xError THEN - iCatch := iCatch +1; - a_TransactionErrorMesg(); - iStep := 9000; - bSetFreq := FALSE; - ELSIF fbTD400Transaction.q_xDone THEN - fbTD400Transaction.i_xExecute := FALSE; - bSetFreq := FALSE; - IF fbTD400Transaction.q_wPKE = (16#1000 OR 24) THEN - q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); - iStep := iStep + 10; - ELSE - a_DriverErrorMesg(); - iStep := 9100; - END_IF - END_IF - ELSE - iStep := iStep + 10; - END_IF + IF fbTD400Transaction.q_xError THEN + iCatch := iCatch +1; + a_TransactionErrorMesg(); + iStep := 9000; + bSetFreq := FALSE; + ELSIF fbTD400Transaction.q_xDone THEN + fbTD400Transaction.i_xExecute := FALSE; + bSetFreq := FALSE; + IF fbTD400Transaction.q_wPKE = (16#1000 OR 24) THEN + q_stStatus.wSetpointFreq_P24 := DWORD_TO_WORD(fbTD400Transaction.q_dwPWE); + iStep := iStep + 10; + ELSE + a_DriverErrorMesg(); + iStep := 9100; + END_IF + END_IF + ELSE + iStep := iStep + 10; + END_IF 40:(* get P24 *) fbTD400Transaction.i_wPKE := 16#1000 OR 24; @@ -264,20 +264,20 @@ q_stStatus.wErrorCode_P171 := 0;]]> - q_sResult); + q_sResult); a_ClearStatus();]]> - q_sResult); + q_sResult); a_ClearStatus(); q_xTimeout := fbTD400Transaction.q_xTimeout;]]> diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU index 0e901d7..d22e4ce 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/F_CalcTD400Checksum.TcPOU @@ -3,17 +3,17 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_COM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_COM.TcPOU index a0dda0c..e182739 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_COM.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_COM.TcPOU @@ -3,38 +3,38 @@ astPfeifferStatus[iPump] ); + i_xExecute:= TRUE, + i_tTimeOut:= tTimeOut, + i_stControl:=astPfeifferControl[iPump] , + iq_stSerialRXBuffer:= SerialRXBuffer, + iq_stSerialTXBuffer:= SerialTXBuffer, + q_stStatus=> astPfeifferStatus[iPump] ); -IF afbPfeifferSerialDriver[iPump].q_xDone +IF afbPfeifferSerialDriver[iPump].q_xDone OR afbPfeifferSerialDriver[iPump].q_xError THEN - (* reset for next time *) - afbPfeifferSerialDriver[iPump]( i_xExecute:= FALSE, iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); - (* select next pump *) - iPump := iPump + 1; - IF iPump > gcMaxPfeifferPumps THEN - iPump:= 1; - END_IF + (* reset for next time *) + afbPfeifferSerialDriver[iPump]( i_xExecute:= FALSE, iq_stSerialRXBuffer:= SerialRXBuffer, iq_stSerialTXBuffer:= SerialTXBuffer); + (* select next pump *) + iPump := iPump + 1; + IF iPump > gcMaxPfeifferPumps THEN + iPump:= 1; + END_IF END_IF]]> diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_TO_PTM.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_TO_PTM.TcPOU index 01be987..64194dc 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_TO_PTM.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PFEIFFER_TO_PTM.TcPOU @@ -3,10 +3,10 @@ @@ -36,13 +36,13 @@ iq_stPTM.i_iWarningCode := iq_stPfeiffer_stat.iWarningCode_303; (* Check that error acknowledgment is processed*) IF iq_stPfeiffer_stat.xErrorAcknowledged THEN - iq_stPfeiffer_stat.xErrorAcknowledged := FALSE; - iq_stPfeiffer_ctrl.xErrorAck_009 := FALSE; - iq_stPTM.xResetSW := FALSE; + iq_stPfeiffer_stat.xErrorAcknowledged := FALSE; + iq_stPfeiffer_ctrl.xErrorAck_009 := FALSE; + iq_stPTM.xResetSW := FALSE; END_IF IF iq_stPfeiffer_stat.sErrorCode_303 = '' THEN - ; + ; ELSIF iq_stPfeiffer_stat.sErrorCode_303 <> '000000' THEN iq_stPTM.i_xFault := TRUE; ELSE @@ -50,9 +50,5 @@ iq_stPTM.i_xFault := FALSE; END_IF ]]> - - - - \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferSerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferSerialDriver.TcPOU index 1e4cb26..8ab776e 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferSerialDriver.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferSerialDriver.TcPOU @@ -3,535 +3,535 @@ diOldSetRotationSpeed_707) AND ( i_stControl.iSetRotationSpeed_707 <> 0) THEN - diOldSetRotationSpeed_707 := i_stControl.iSetRotationSpeed_707; - iStep := 110; - ELSE - q_sResult := 'Success'; - iStep := 8000;// maybe should be 5000 - END_IF*) - - 110: (* Set SpdSetMode: Rotation speed setting mode*) - IF i_stControl.xSetSpdMode_026 THEN - sSendData := '001'; - ELSE - sSendData := '000'; - END_IF - //i_stControl.iSetSpdMode_026:=1; - //fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iSetSpdMode_026), sOut => sSendData); - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 26; - fbPfeifferTransaction.i_iDataLength:= 3; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 110 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.iSetSpdMode_026 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 120; - ELSE - q_sResult := CONCAT('In step 110 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - 120:(* Update Pump Speed *) (* SpdSVal % Set value in rot. speed setting mode *) - i_stControl.iSetRotationSpeed_707 := i_stControl.iSetRotationSpeed_707 *100; //Datatype 2 - fbFormatString( sFormat:= '%.6u', arg1:= F_INT(i_stControl.iSetRotationSpeed_707), sOut => sSendData); - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 707; - fbPfeifferTransaction.i_iDataLength:= 6; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 120 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.iSetRotationSpeed_707 := STRING_TO_INT( fbPfeifferTransaction.q_sResponseData); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 8000; - ELSE - q_sResult := CONCAT('In step 120 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - - 130: (* Set SpdSetMode: Rotation speed setting mode Off*) - (* i_stControl.iSetSpdMode_026:=0; - fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iSetSpdMode_026), sOut => sSendData); - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 26; - fbPfeifferTransaction.i_iDataLength:= 3; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 110 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.iSetSpdMode_026 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 100; - ELSE - q_sResult := CONCAT('In step 110 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF*) - - 5000:(* Check Status vs. requested parameters, set iff necessary *) - IF i_stControl.xErrorAck_009 THEN - iStep := 5030; - ELSIF i_stControl.xPumpingStation_010 <> q_stStatus.xPumpingStation_010 THEN - //iStep := 5010; Done through the PLC DIO - ELSIF i_stControl.iGasMode_027 <> q_stStatus.iGasMode_027 THEN - iStep := 5020; - ELSIF i_stControl.xMotorPump_023 <> q_stStatus.xMotorPump_023 THEN - //iStep := 5011; Done through the PLC DIO - ELSIF i_stControl.uiPowerPct_708 <> q_stStatus.uiPowerPct_708 THEN - iStep := 5012; - ELSE - q_sResult := 'Success'; - iStep := 8000; - END_IF - - 5010: (* Update Pumping Station *) - IF i_stControl.xPumpingStation_010 THEN - sSendData := '111111'; - ELSE - sSendData := '000000'; - END_IF - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 10; - fbPfeifferTransaction.i_iDataLength:= 6; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 5010 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.xPumpingStation_010 := (fbPfeifferTransaction.q_sResponseData = '111111'); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 5000; - ELSE - q_sResult := CONCAT('In step 5010 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - 5011: (* Update Pump Motor *) - IF i_stControl.xMotorPump_023 THEN - sSendData := '111111'; - ELSE - sSendData := '000000'; - END_IF - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 23; - fbPfeifferTransaction.i_iDataLength:= 6; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 5011 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.xMotorPump_023 := (fbPfeifferTransaction.q_sResponseData = '111111'); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 5000; - ELSE - q_sResult := CONCAT('In step 5011 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - 5012: (* Update Power Consumption Percent *) - fbFormatString( sFormat:= '%.6u', arg1:= F_UINT(i_stControl.uiPowerPct_708), sOut => sSendData); - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 708; - fbPfeifferTransaction.i_iDataLength:= 3; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 5012 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.uiPowerPct_708 := STRING_TO_UINT(fbPfeifferTransaction.q_sResponseData); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 5000; - ELSE - q_sResult := CONCAT('In step 5012 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - 5020: (* Update Gas Mode *) - fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iGasMode_027), sOut => sSendData); - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 27; - fbPfeifferTransaction.i_iDataLength:= 3; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 5020 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN - IF fbPfeifferTransaction.q_sResponseData = sSendData THEN - q_stStatus.iGasMode_027 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 5000; - ELSE - q_sResult := CONCAT('In step 5020 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); - iStep := 9000; - END_IF - END_IF - - 5030: (* Update Error Acknowledgement *) - IF i_stControl.xErrorAck_009 THEN - q_stStatus.xErrorAcknowledged := TRUE; - sSendData := '111111'; - ELSE - sSendData := '000000'; - END_IF - fbPfeifferTransaction.i_xExecute:= TRUE; - fbPfeifferTransaction.i_xActionCommand:= TRUE; - fbPfeifferTransaction.i_iParameterNum:= 9; - fbPfeifferTransaction.i_iDataLength:= 6; - fbPfeifferTransaction.i_sSendData:= sSendData; - IF fbPfeifferTransaction.q_xError THEN - q_sResult := CONCAT('in Step 5030 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); - iStep := 9000; - ELSIF fbPfeifferTransaction.q_xDone THEN (* Error Acknowledged *) - a_ClearTrans(); (* to provide rising edge for execute *) - iStep := 5000; - END_IF - - - 8000: (* done *) - q_xDone := TRUE; - a_ClearTrans(); (* to provide rising edge for execute *) - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF - - 9000: - _A_ClearStatus(); - a_ClearTrans(); (* to provide rising edge for execute *) - q_xError := TRUE; + 0: (* idle *) + ; + + (* Get all statuses *) + 10: (* Pumping Station *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 10; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 10 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = '000000' OR fbPfeifferTransaction.q_sResponseData = '111111' THEN + q_stStatus.xPumpingStation_010 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + ELSE + q_sResult := CONCAT('In step 10 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 20: (* Gas Mode *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 27; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 20 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.iGasMode_027 := STRING_TO_INT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + END_IF + + 30: (* Error Code *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 303; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 30 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.sErrorCode_303 := fbPfeifferTransaction.q_sResponseData; + IF LEFT(q_stStatus.sErrorCode_303, 3) = 'Err' THEN + q_stStatus.iErrorCode_303 := STRING_TO_INT( RIGHT(q_stStatus.sErrorCode_303, 3) ); + q_stStatus.iWarningCode_303 := 0; + ELSIF LEFT(q_stStatus.sErrorCode_303, 3) = 'Wrn' THEN + q_stStatus.iWarningCode_303 := STRING_TO_INT( RIGHT(q_stStatus.sErrorCode_303, 3) ); + q_stStatus.iErrorCode_303 := 0; + ELSIF q_stStatus.sErrorCode_303 = '000000' THEN + q_stStatus.iErrorCode_303 := q_stStatus.iWarningCode_303 := 0; + END_IF + + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + END_IF + + 40: (* Excess Temperature Pump *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 305; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 40 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = '000000' OR fbPfeifferTransaction.q_sResponseData = '111111' THEN + q_stStatus.xExcessTempPump_305 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + ELSE + q_sResult := CONCAT('In step 40 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 50: (* Rotation Speed Attained *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 306; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 50 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = '000000' OR fbPfeifferTransaction.q_sResponseData = '111111' THEN + q_stStatus.xRotationSpeedAttn_306 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + ELSE + q_sResult := CONCAT('In step 50 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 60: (* Pump Accelerating *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 307; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 60 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = '000000' OR fbPfeifferTransaction.q_sResponseData = '111111' THEN + q_stStatus.xPumpAccelerating_307 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + ELSE + q_sResult := CONCAT('In step 60 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 70: (* Acitve Rotation Speed *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 309; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 70 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diActiveRotationSpeed_309 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 1; + END_IF + + 71: (* Electronics Temp *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 326; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 71 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diTempElec_326 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 1; + END_IF + + 72: (* Bottom of Pump Temp *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 330; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 72 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diTempPmpBot_330 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 1; + END_IF + + 73: (* Temp bearing *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 342; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 73 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diTempBearng_342 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 1; + END_IF + + + 74: (* Temp motor *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 346; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 74 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diTempMotor_346 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 80; + END_IF + + 80: (* Drive Current *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 310; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 80 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.lrDriveCurrent_310 := STRING_TO_LREAL( fbPfeifferTransaction.q_sResponseData)/100.0; + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := iStep + 10; + END_IF + + 90: (* Drive Power *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 316; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 90 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.diDrivePower_316 := STRING_TO_DINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 91; + END_IF + + 91: (* Check Power Consumption Limit *) + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= FALSE; + fbPfeifferTransaction.i_iParameterNum:= 708; + fbPfeifferTransaction.i_iDataLength:= 2; + fbPfeifferTransaction.i_sSendData:= '=?'; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 91 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + q_stStatus.uiPowerPct_708 := STRING_TO_UINT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 8000;// this step not tested 110; // was 5000, but we don't want to control via serial but via PLC IO, just write the pump speed + END_IF + + 100: + (*IF (i_stControl.iSetRotationSpeed_707 <> diOldSetRotationSpeed_707) AND ( i_stControl.iSetRotationSpeed_707 <> 0) THEN + diOldSetRotationSpeed_707 := i_stControl.iSetRotationSpeed_707; + iStep := 110; + ELSE + q_sResult := 'Success'; + iStep := 8000;// maybe should be 5000 + END_IF*) + + 110: (* Set SpdSetMode: Rotation speed setting mode*) + IF i_stControl.xSetSpdMode_026 THEN + sSendData := '001'; + ELSE + sSendData := '000'; + END_IF + //i_stControl.iSetSpdMode_026:=1; + //fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iSetSpdMode_026), sOut => sSendData); + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 26; + fbPfeifferTransaction.i_iDataLength:= 3; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 110 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.iSetSpdMode_026 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 120; + ELSE + q_sResult := CONCAT('In step 110 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 120:(* Update Pump Speed *) (* SpdSVal % Set value in rot. speed setting mode *) + i_stControl.iSetRotationSpeed_707 := i_stControl.iSetRotationSpeed_707 *100; //Datatype 2 + fbFormatString( sFormat:= '%.6u', arg1:= F_INT(i_stControl.iSetRotationSpeed_707), sOut => sSendData); + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 707; + fbPfeifferTransaction.i_iDataLength:= 6; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 120 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.iSetRotationSpeed_707 := STRING_TO_INT( fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 8000; + ELSE + q_sResult := CONCAT('In step 120 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + + 130: (* Set SpdSetMode: Rotation speed setting mode Off*) + (* i_stControl.iSetSpdMode_026:=0; + fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iSetSpdMode_026), sOut => sSendData); + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 26; + fbPfeifferTransaction.i_iDataLength:= 3; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 110 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.iSetSpdMode_026 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 100; + ELSE + q_sResult := CONCAT('In step 110 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF*) + + 5000:(* Check Status vs. requested parameters, set iff necessary *) + IF i_stControl.xErrorAck_009 THEN + iStep := 5030; + ELSIF i_stControl.xPumpingStation_010 <> q_stStatus.xPumpingStation_010 THEN + //iStep := 5010; Done through the PLC DIO + ELSIF i_stControl.iGasMode_027 <> q_stStatus.iGasMode_027 THEN + iStep := 5020; + ELSIF i_stControl.xMotorPump_023 <> q_stStatus.xMotorPump_023 THEN + //iStep := 5011; Done through the PLC DIO + ELSIF i_stControl.uiPowerPct_708 <> q_stStatus.uiPowerPct_708 THEN + iStep := 5012; + ELSE + q_sResult := 'Success'; + iStep := 8000; + END_IF + + 5010: (* Update Pumping Station *) + IF i_stControl.xPumpingStation_010 THEN + sSendData := '111111'; + ELSE + sSendData := '000000'; + END_IF + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 10; + fbPfeifferTransaction.i_iDataLength:= 6; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 5010 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.xPumpingStation_010 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 5000; + ELSE + q_sResult := CONCAT('In step 5010 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 5011: (* Update Pump Motor *) + IF i_stControl.xMotorPump_023 THEN + sSendData := '111111'; + ELSE + sSendData := '000000'; + END_IF + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 23; + fbPfeifferTransaction.i_iDataLength:= 6; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 5011 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.xMotorPump_023 := (fbPfeifferTransaction.q_sResponseData = '111111'); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 5000; + ELSE + q_sResult := CONCAT('In step 5011 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 5012: (* Update Power Consumption Percent *) + fbFormatString( sFormat:= '%.6u', arg1:= F_UINT(i_stControl.uiPowerPct_708), sOut => sSendData); + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 708; + fbPfeifferTransaction.i_iDataLength:= 3; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 5012 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.uiPowerPct_708 := STRING_TO_UINT(fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 5000; + ELSE + q_sResult := CONCAT('In step 5012 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 5020: (* Update Gas Mode *) + fbFormatString( sFormat:= '%.3u', arg1:= F_INT(i_stControl.iGasMode_027), sOut => sSendData); + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 27; + fbPfeifferTransaction.i_iDataLength:= 3; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 5020 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN + IF fbPfeifferTransaction.q_sResponseData = sSendData THEN + q_stStatus.iGasMode_027 := STRING_TO_INT(fbPfeifferTransaction.q_sResponseData); + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 5000; + ELSE + q_sResult := CONCAT('In step 5020 invalid data returned from Pfeiffer: ', fbPfeifferTransaction.q_sResponseData); + iStep := 9000; + END_IF + END_IF + + 5030: (* Update Error Acknowledgement *) + IF i_stControl.xErrorAck_009 THEN + q_stStatus.xErrorAcknowledged := TRUE; + sSendData := '111111'; + ELSE + sSendData := '000000'; + END_IF + fbPfeifferTransaction.i_xExecute:= TRUE; + fbPfeifferTransaction.i_xActionCommand:= TRUE; + fbPfeifferTransaction.i_iParameterNum:= 9; + fbPfeifferTransaction.i_iDataLength:= 6; + fbPfeifferTransaction.i_sSendData:= sSendData; + IF fbPfeifferTransaction.q_xError THEN + q_sResult := CONCAT('in Step 5030 fbPfeifferTransaction failed with message: ', fbPfeifferTransaction.q_sResult); + iStep := 9000; + ELSIF fbPfeifferTransaction.q_xDone THEN (* Error Acknowledged *) + a_ClearTrans(); (* to provide rising edge for execute *) + iStep := 5000; + END_IF + + + 8000: (* done *) + q_xDone := TRUE; + a_ClearTrans(); (* to provide rising edge for execute *) + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF + + 9000: + _A_ClearStatus(); + a_ClearTrans(); (* to provide rising edge for execute *) + q_xError := TRUE; END_CASE //call transaction fbPfeifferTransaction( - i_iAddress:= i_stControl.iSerialAddress, - i_tTimeOut:= i_tTimeOut, - iq_stSerialRXBuffer:= iq_stSerialRXBuffer, - iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); + i_iAddress:= i_stControl.iSerialAddress, + i_tTimeOut:= i_tTimeOut, + iq_stSerialRXBuffer:= iq_stSerialRXBuffer, + iq_stSerialTXBuffer:= iq_stSerialTXBuffer ); q_stStatus.xTimeout := fbPfeifferTransaction.q_xTimeout; q_sLastSentString := fbPfeifferTransaction.q_sLastSentString; diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferTransaction.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferTransaction.TcPOU index 1e0ebee..c4df77d 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferTransaction.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/FB_PfeifferTransaction.TcPOU @@ -3,52 +3,52 @@ @@ -57,119 +57,115 @@ END_VAR (* rising edge trigger *) rtExecute(CLK:= i_xExecute); IF rtExecute.Q THEN - q_xDone := FALSE; - q_sResponseData := ''; - q_xError := FALSE; - //q_xTimeout := FALSE; - q_sResult:= ''; - q_sLastSentString := ''; - q_sLastReceivedString:= ''; - iStep := 10; + q_xDone := FALSE; + q_sResponseData := ''; + q_xError := FALSE; + //q_xTimeout := FALSE; + q_sResult:= ''; + q_sLastSentString := ''; + q_sLastReceivedString:= ''; + iStep := 10; END_IF CASE iStep OF - 0: - ; (* idle *) + 0: + ; (* idle *) - 10: (* clear com buffers *) - fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); - fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); + 10: (* clear com buffers *) + fbClearComBuffer(Buffer:= iq_stSerialRXBuffer); + fbClearComBuffer(Buffer:= iq_stSerialTXBuffer); - (* build the send string *) - fbFormatString( sFormat:= '%0.3d', arg1:= F_INT(i_iAddress), sOut=> sSendString); (* address *) - IF i_xActionCommand THEN (* action *) - sSendString := CONCAT(sSendString, '10'); - ELSE - sSendString := CONCAT(sSendString, '00'); - END_IF - fbFormatString( sFormat:= '%0.3u', arg1:= F_INT(i_iParameterNum)); (* parameter number *) - sSendString := CONCAT(sSendString, fbFormatString.sOut); - fbFormatString( sFormat:= '%0.2u', arg1:= F_INT(i_iDataLength)); (* data length *) - sSendString := CONCAT(sSendString, fbFormatString.sOut); - sSendString := CONCAT(sSendString, i_sSendData); (* data *) - iChecksum := F_CalcPfeifferChecksum(sSendString); (* checksum *) - fbFormatString( sFormat:= '%0.3u$R', arg1:= F_INT(iChecksum)); - sSendString := CONCAT(sSendString, fbFormatString.sOut); - (* send it *) - fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); - q_sLastSentString := sSendString; - iStep := iStep + 10; + (* build the send string *) + fbFormatString( sFormat:= '%0.3d', arg1:= F_INT(i_iAddress), sOut=> sSendString); (* address *) + IF i_xActionCommand THEN (* action *) + sSendString := CONCAT(sSendString, '10'); + ELSE + sSendString := CONCAT(sSendString, '00'); + END_IF + fbFormatString( sFormat:= '%0.3u', arg1:= F_INT(i_iParameterNum)); (* parameter number *) + sSendString := CONCAT(sSendString, fbFormatString.sOut); + fbFormatString( sFormat:= '%0.2u', arg1:= F_INT(i_iDataLength)); (* data length *) + sSendString := CONCAT(sSendString, fbFormatString.sOut); + sSendString := CONCAT(sSendString, i_sSendData); (* data *) + iChecksum := F_CalcPfeifferChecksum(sSendString); (* checksum *) + fbFormatString( sFormat:= '%0.3u$R', arg1:= F_INT(iChecksum)); + sSendString := CONCAT(sSendString, fbFormatString.sOut); + (* send it *) + fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); + q_sLastSentString := sSendString; + iStep := iStep + 10; - 20: (* Finish sending the String *) - IF fbSendString.Busy THEN - fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); - ELSIF fbSendString.Error <> 0 THEN - q_sResult := CONCAT('In step 20 fbSendString resulted in error: ', INT_TO_STRING(fbSendString.Error)); - iStep := 9000; - ELSIF NOT fbSendString.Busy THEN - iStep := iStep + 10; - END_IF - (* Reset receive *) - fbReceiveString( - Reset:= TRUE, - ReceivedString:= sReceivedString, - RXbuffer:= iq_stSerialRXBuffer ); - tonTimeout(IN:= FALSE); + 20: (* Finish sending the String *) + IF fbSendString.Busy THEN + fbSendString( SendString:= sSendString, TXbuffer:= iq_stSerialTXBuffer ); + ELSIF fbSendString.Error <> 0 THEN + q_sResult := CONCAT('In step 20 fbSendString resulted in error: ', INT_TO_STRING(fbSendString.Error)); + iStep := 9000; + ELSIF NOT fbSendString.Busy THEN + iStep := iStep + 10; + END_IF + (* Reset receive *) + fbReceiveString( + Reset:= TRUE, + ReceivedString:= sReceivedString, + RXbuffer:= iq_stSerialRXBuffer ); + tonTimeout(IN:= FALSE); - 30: (* Get reply *) - fbReceiveString( - Prefix:= , - Suffix:= '$R', - Timeout:= i_tTimeOut, - Reset:= FALSE, - ReceivedString:= sReceivedString, - RXbuffer:= iq_stSerialRXBuffer ); - tonTimeout(IN:= TRUE, PT:= i_tTimeOut); - IF fbReceiveString.Error <> 0 AND fbReceiveString.Error <> 16#1008 THEN //16#1008 is timeout error - q_sResult := CONCAT('In step 30 fbReceiveString resulted in error: ', INT_TO_STRING(fbReceiveString.Error)); - iStep := 9000; - ELSIF fbReceiveString.RxTimeout OR tonTimeout.Q THEN - q_sResult := 'Pfeiffer pump failed to reply within timeout period'; - q_xTimeout := TRUE; - iStep := 9000; - ELSIF fbReceiveString.StringReceived THEN - q_xTimeout := FALSE; //no timeout - q_sLastReceivedString := sReceivedString; - (* check checksum *) - sReceiveStringWOChecksum := LEFT(sReceivedString, LEN(sReceivedString)-4); - iChecksum := F_CalcPfeifferChecksum(sReceiveStringWOChecksum); - sRXCheckSum := MID(sReceivedString,3,LEN(sReceivedString)-3); - sRXAddress := LEFT(sReceivedString,3); - sRXParmNum := MID(sReceivedString,3,6); - IF iChecksum <> STRING_TO_INT(sRXCheckSum) THEN - q_sResult := 'Invalid checksum on received string.'; - iStep := 9000; - ELSIF i_iAddress <> STRING_TO_INT(sRXAddress) THEN - q_sResult := 'Invalid unit address on received string.'; - iStep := 9000; - ELSIF i_iParameterNum <> STRING_TO_INT(sRXParmNum) THEN - q_sResult := 'Invalid parameter number on received string.'; - iStep := 9000; - ELSE - q_sResponseData := MID(sReceivedString,LEN(sReceivedString)-14 ,11); - q_sResult := 'Success.'; - q_xDone:= TRUE; - iStep := 100; - END_IF - END_IF + 30: (* Get reply *) + fbReceiveString( + Prefix:= , + Suffix:= '$R', + Timeout:= i_tTimeOut, + Reset:= FALSE, + ReceivedString:= sReceivedString, + RXbuffer:= iq_stSerialRXBuffer ); + tonTimeout(IN:= TRUE, PT:= i_tTimeOut); + IF fbReceiveString.Error <> 0 AND fbReceiveString.Error <> 16#1008 THEN //16#1008 is timeout error + q_sResult := CONCAT('In step 30 fbReceiveString resulted in error: ', INT_TO_STRING(fbReceiveString.Error)); + iStep := 9000; + ELSIF fbReceiveString.RxTimeout OR tonTimeout.Q THEN + q_sResult := 'Pfeiffer pump failed to reply within timeout period'; + q_xTimeout := TRUE; + iStep := 9000; + ELSIF fbReceiveString.StringReceived THEN + q_xTimeout := FALSE; //no timeout + q_sLastReceivedString := sReceivedString; + (* check checksum *) + sReceiveStringWOChecksum := LEFT(sReceivedString, LEN(sReceivedString)-4); + iChecksum := F_CalcPfeifferChecksum(sReceiveStringWOChecksum); + sRXCheckSum := MID(sReceivedString,3,LEN(sReceivedString)-3); + sRXAddress := LEFT(sReceivedString,3); + sRXParmNum := MID(sReceivedString,3,6); + IF iChecksum <> STRING_TO_INT(sRXCheckSum) THEN + q_sResult := 'Invalid checksum on received string.'; + iStep := 9000; + ELSIF i_iAddress <> STRING_TO_INT(sRXAddress) THEN + q_sResult := 'Invalid unit address on received string.'; + iStep := 9000; + ELSIF i_iParameterNum <> STRING_TO_INT(sRXParmNum) THEN + q_sResult := 'Invalid parameter number on received string.'; + iStep := 9000; + ELSE + q_sResponseData := MID(sReceivedString,LEN(sReceivedString)-14 ,11); + q_sResult := 'Success.'; + q_xDone:= TRUE; + iStep := 100; + END_IF + END_IF - 100: (* done *) - IF i_xExecute = FALSE THEN - q_xDone:= FALSE; - iStep := 0; - END_IF + 100: (* done *) + IF i_xExecute = FALSE THEN + q_xDone:= FALSE; + iStep := 0; + END_IF - 9000: - q_xError := TRUE; + 9000: + q_xError := TRUE; END_CASE]]> - - - - \ No newline at end of file diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/F_CalcPfeifferCheckSum.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/F_CalcPfeifferCheckSum.TcPOU index 4f8ed21..4b23b97 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/F_CalcPfeifferCheckSum.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Pfeiffer/F_CalcPfeifferCheckSum.TcPOU @@ -3,18 +3,18 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Oerlikon/ST_TD20Status.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Oerlikon/ST_TD20Status.TcDUT index f0c310c..14d721f 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Oerlikon/ST_TD20Status.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Oerlikon/ST_TD20Status.TcDUT @@ -3,28 +3,28 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferControl.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferControl.TcDUT index 2867a09..18b289d 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferControl.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferControl.TcDUT @@ -3,19 +3,19 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferStatus.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferStatus.TcDUT index 8716c34..983fe7d 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferStatus.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Serial/Pfeiffer/ST_PfeifferStatus.TcDUT @@ -3,21 +3,21 @@ diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Version/Global_Version.TcGVL b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Version/Global_Version.TcGVL index 619700b..70a214f 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Version/Global_Version.TcGVL +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/Version/Global_Version.TcGVL @@ -6,8 +6,8 @@ {attribute 'linkalways'} // This function has been automatically generated from the project information. VAR_GLOBAL CONSTANT - {attribute 'const_non_replaced'} - stLibVersion_LCLSVacuumSerialDriverLib : ST_LibVersion := (iMajor := 0, iMinor := 0, iBuild := 0, iRevision := 0, nFlags := 0, sVersion := '0.0.0'); + {attribute 'const_non_replaced'} + stLibVersion_LCLSVacuumSerialDriverLib : ST_LibVersion := (iMajor := 0, iMinor := 0, iBuild := 0, iRevision := 0, nFlags := 0, sVersion := '0.0.0'); END_VAR ]]> From 8691fab1a6d922c79e147bb5d8af7df327665a6a Mon Sep 17 00:00:00 2001 From: Janez Govednik Date: Mon, 4 Mar 2024 08:06:36 -0800 Subject: [PATCH 4/5] Fixing pragma for GAS_MODE in pfeiffer structure --- .../DUTs/Pfeiffer/ST_PfeifferControl.TcDUT | 2 +- .../LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT index f5d99f7..6bc49c3 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/DUTs/Pfeiffer/ST_PfeifferControl.TcDUT @@ -36,7 +36,7 @@ STRUCT xMotorPump_023: BOOL; {attribute 'pytmc' := ' pv: GAS_MODE; - io: i0; + io: io; '} iGasMode_027: INT; /// interlock bit diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc index 3a0ce10..4900233 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc @@ -15206,7 +15206,7 @@ These features aren't disabled, they just aren't used, think child/parent classe ChangeDate - 2024-02-16T10:57:48 + 2024-03-04T08:05:14 GeneratedCodeSize From 93a9a300e7aa23c4eddc999e7c6ad2427ecc3d69 Mon Sep 17 00:00:00 2001 From: Janez Govednik Date: Wed, 10 Apr 2024 14:53:26 -0700 Subject: [PATCH 5/5] Adding new parameters to ClearStatus action --- .../LCLSVacuumSerialDriverLib.tmc | 2 +- .../LCLSVacuumSerialDriverLib/LineIDs.dbg | Bin 364 -> 380 bytes .../Oerlikon TD400/FB_TD400SerialDriver.TcPOU | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc index 4900233..bcd181f 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LCLSVacuumSerialDriverLib.tmc @@ -15206,7 +15206,7 @@ These features aren't disabled, they just aren't used, think child/parent classe ChangeDate - 2024-03-04T08:05:14 + 2024-04-10T14:52:16 GeneratedCodeSize diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LineIDs.dbg b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/LineIDs.dbg index f7d5b20bf47f1ce32ee15ef4ed787d10841891f0..84319a01473da3d4e163b294f32a18affe3dae67 100644 GIT binary patch delta 37 lcmaFE^oMDK4WlG80|NsS5VHU=FAy^VF*^{mPIhHf2LNl~1Qq}Q delta 21 bcmeyv^oD7J4I?Kb0|NsS5OYlqWmE?MI#UDy diff --git a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU index 5a7ead1..39b5841 100644 --- a/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU +++ b/LCLSVacuumSerialDrivers/LCLSVacuumSerialDriverLib/POUs/Serial drivers/Pumps/Oerlikon TD400/FB_TD400SerialDriver.TcPOU @@ -254,6 +254,8 @@ q_stStatus.wFrequency_P3 := 0; q_stStatus.wVoltage_P4 := 0; q_stStatus.wMotorCurrent_P5 := 0; q_stStatus.wConverterTemp_P11 := 0; +q_stStatus.wMaxSetpointFreq_P18 := 0; +q_stStatus.wMinSetpointFreq_P19 := 0; q_stStatus.wCriticalFreq_P20 := 0; //q_stStatus.wMaxCurrentFactor_P21 := 0; q_stStatus.wSetpointFreq_P24 := 0;