diff --git a/L2SIVacuum/L2SIVacuum.plcproj b/L2SIVacuum/L2SIVacuum.plcproj
index 439181d..0cea671 100644
--- a/L2SIVacuum/L2SIVacuum.plcproj
+++ b/L2SIVacuum/L2SIVacuum.plcproj
@@ -216,6 +216,9 @@
Code
true
+
+ Code
+
Code
diff --git a/L2SIVacuum/L2SIVacuum.tmc b/L2SIVacuum/L2SIVacuum.tmc
index 9fb9037..34f6267 100644
--- a/L2SIVacuum/L2SIVacuum.tmc
+++ b/L2SIVacuum/L2SIVacuum.tmc
@@ -1,4 +1,4 @@
-ST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33T_MaxString2048STRING(255)TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictE_Subsystem16WORDNILVALUE0VACUUM1MPS2MOTION3FIELDBUS4SDS5OPTICS6I_ArgumentsChangeListener64PVOIDOnArgumentsChangedITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL865879056bErrorBOOL865879128hrErrorCodeHRESULT3265879144nStringSizeUDINT3265879104sResultSTRING(255)204865879136__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_TcSourceInfonIdUDINT326587893665878984sNameSTRING(255)20486587901665879040ExtendNameBOOL8sExtensionSTRING(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__BBUSYBOOL84032conditionalshoweSeverityTcEventSeverity1665879240ipSourceInfoI_TcSourceInfo6465879200nEventIdUDINT3265879376nUniqueIdUDINT3265879384sEventClassNameSTRING(255)204865879296sEventTextSTRING(255)204865879392EqualsToEventClassBOOL8OtherEventClassGUID128_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_TcMessagenTimeSentULINT6465879440SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64InitipMessageITcMessage64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getnTimeSentULINT64nTimeSentULINT64ipMessage2ITcMessage264nTimeStampULINT64propertymonitoringcallTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshowSendHRESULT32nTimeStampULINT64ReleaseHRESULT32PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyF_TRIGST_System40xSwAlmRstBOOL80xAtVacuumBOOL88xFirstScanBOOL816xOverrideModeBOOL824xIOStateBOOL832analysis-33T_MaxString2048STRING(255)TcEventSeverity16INT01234plcAttribute_qualified_onlyplcAttribute_strictE_Subsystem16WORDNILVALUE0VACUUM1MPS2MOTION3FIELDBUS4SDS5OPTICS6I_ArgumentsChangeListener64PVOIDOnArgumentsChangedITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL865879312bErrorBOOL865879384hrErrorCodeHRESULT3265879400nStringSizeUDINT3265879360sResultSTRING(255)204865879392__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_TcSourceInfonIdUDINT326587919265879240sNameSTRING(255)20486587927265879296ExtendNameBOOL8sExtensionSTRING(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__BBUSYBOOL84032conditionalshoweSeverityTcEventSeverity1665879496ipSourceInfoI_TcSourceInfo6465879456nEventIdUDINT3265879632nUniqueIdUDINT3265879640sEventClassNameSTRING(255)204865879552sEventTextSTRING(255)204865879648EqualsToEventClassBOOL8OtherEventClassGUID128_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_TcMessagenTimeSentULINT6465879696SetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64ItemTypeInOutCreateExHRESULT32stEventEntryTcEventEntry192ipSourceInfoI_TcSourceInfo64InitipMessageITcMessage64ipArgumentsITcArguments64ipSourceInfoITcSourceInfo64conditionalshow__getnTimeSentULINT64nTimeSentULINT64ipMessage2ITcMessage264nTimeStampULINT64propertymonitoringcallTcDisplayTypeGUID18071995-0000-0000-0000-000000000046CreateHRESULT32eventClassGUID128nEventIdUDINT32eSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64hrHRESULT32ipArgumentsITcArguments64__getipEventITcEvent64ipEventITcEvent64propertyconditionalshowSendHRESULT32nTimeStampULINT64ReleaseHRESULT32PouTypeFunctionBlockreflectionconditionalshow_all_localsno_explicit_calldo not call this POU directlyF_TRIG96CLKBOOL864ItemTypeInputQBOOL872ItemTypeOutputMBOOL8801conditionalshowPouTypeFunctionBlockconditionalshow_all_localsR_TRIGrVREAL3291072i_iPRESS_RINT1691104TcAddressTypeInputrMinPressureREAL32911360.0001rDefaultVAC_SPREAL32911680.05rDisconnectedBoundaryREAL32912000.1rValidLoBoundaryREAL32912320.22rValidBoundaryMinREAL32912640.6rValidHiBoundaryREAL32912969.7rValidHiBoundaryMaxREAL32913289.9rNoSensorBoundaryREAL329136010ACT_PersistentACT_LoggerIOPouTypeFunctionBlockFB_GPI_Test33741632FB_TestSuitefb_MKS275FB_MKS2759139233558784fb_MKS317FB_MKS3179139233650176i_iPRESS_RINT1633741568TcAddressTypeOutputcycleINT16337415840M_INITExpectedREAL32ActualREAL32eStateExpectedE_PressureState16eStateActualE_PressureState16M_CheckRangeExpectedREAL32ActualREAL32eStateExpectedE_PressureState16eStateActualE_PressureState16PouTypeFunctionBlockFB_MKS42292800FB_GaugeBasePGST_VG105689984ItemTypeInputb937ABOOL8910400ItemTypeInputtRecoverDelayTIME3291072600000ItemTypeInputIGST_VG105691104ItemTypeOutputpytmc
pv:
- rVREAL3292160timerTON25692224i_iPRESS_RINT1692480TcAddressTypeInputq_xHV_DISBOOL8924961TcAddressTypeOutputMinPressureREAL32925121E-11vDisconnectedREAL32925440.18vMaxValidREAL32925769.6vMaxREAL32926089.9vValidLoREAL32926400.22vMinREAL32926720.6cDefaultPressureREAL32927040bWasOnBOOL892736TcPersistentbAutoRecoverBOOL892744TcPersistentbAutoRecoverWriteBOOL892752TcPersistentACT_LoggerIOACT_RecoverACT_PersistentM_HVEBOOL8enableBOOL8M_RecoverBOOL8M_AutoOnBOOL8PouTypeFunctionBlockFB_GCC_Test33652736FB_TestSuitePGST_VG105633558784fb_MKS422FB_MKS4229280033559872i_iPRESS_RINT1633652672TcAddressTypeOutputcycleINT16336526880M_InterlockM_SelfProtectionM_INITM_CheckRangeExpectedREAL32ActualREAL32eStateExpectedE_PressureState16eStateActualE_PressureState16PouTypeFunctionBlockVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024_Implicit_KindOfTask16INT_implicit_cyclic0_implicit_event1_implicit_external2_implicit_freewheeling3_Implicit_Jitter_Distribution48wRangeMaxWORD160wCountJitterNegWORD1616wCountJitterPosWORD1632hide_Implicit_Task_Info896dwVersionDWORD320pszNameSTRING(80)6464nPriorityINT16128KindOf_Implicit_KindOfTask16144bWatchdogBOOL8160bProfilingTaskBOOL8168dwEventFunctionPointerBYTE64192pszExternalEventSTRING(80)64256dwTaskEntryFunctionPointerBYTE64320dwWatchdogSensitivityDWORD32384dwIntervalDWORD32416dwWatchdogTimeDWORD32448dwLastCycleTimeDWORD32480dwAverageCycleTimeDWORD32512dwMaxCycleTimeDWORD32544dwMinCycleTimeDWORD32576diJitterDINT32608diJitterMinDINT32640diJitterMaxDINT32672dwCycleCountDWORD32704wTaskStatusWORD16736wNumOfJitterDistributionsWORD16752pJitterDistribution_Implicit_Jitter_Distribution64768bWithinSPSTimeSlicingBOOL8832byDummyBYTE8840bShouldBlockBOOL8848bActiveBOOL8856dwIECCycleCountDWORD32864hideLCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseL2SIVacuum{08500001-0000-0000-F000-000000000064}0PlcTask#x020100300PlcTask Inputs066650112PRG_Test.fb_VGC_Test.VGC.i_xOpnLS8BOOLTcAddressTypeInput357830208PRG_Test.fb_VGC_Test.VGC.i_xClsLS8BOOLTcAddressTypeInput357830216PRG_Test.fb_VRC_Test.VRC.i_xOpnLS8BOOLTcAddressTypeInput392001280PRG_Test.fb_VRC_Test.VRC.i_xClsLS8BOOLTcAddressTypeInput392001288PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.i_iPRESS16INTTcAddressTypeInput425652304PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.i_xSP_DI8BOOLTcAddressTypeInput425652320PRG_Test.fb_PTM_Test.fb_TwisTorr.i_xAtSpd8BOOLTcAddressTypeInput459303080PRG_Test.fb_PTM_Test.fb_TwisTorr.i_xFault8BOOLTcAddressTypeInput459303088PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xDecel8BOOLTcAddressTypeInput459391360PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xAccel8BOOLTcAddressTypeInput459391368PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xRotate8BOOLTcAddressTypeInput459391376PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xNCFault8BOOLTcAddressTypeInput459391384PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xAtSpd8BOOLTcAddressTypeInput459391392PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iRawSpeed16INTTcAddressTypeInput459391408PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iTempMon5V 0->100C]]>16INTTcAddressTypeInput459391424PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iCurrentMon5V 0->10A]]>16INTTcAddressTypeInput459391440PRG_Test.fb_PTM_Test.q_iSpeedSet16INTTcAddressTypeInput459391568PRG_Test.fb_GPI_Test.fb_MKS275.i_iPRESS_R16INTTcAddressTypeInput493041600PRG_Test.fb_GPI_Test.fb_MKS317.i_iPRESS_R16INTTcAddressTypeInput493132960PRG_Test.fb_GCC_Test.fb_MKS422.i_iPRESS_R16INTTcAddressTypeInput5267856641PlcTask Outputs066650112PRG_Test.fb_VGC_Test.VGC.q_xOPN_DO8BOOLTcAddressTypeOutput357830224PRG_Test.fb_VGC_Test.io_fbFFHWO.q_xFastFaultOut8BOOLpytmc
+ rVREAL3292160timerTON25692224i_iPRESS_RINT1692480TcAddressTypeInputq_xHV_DISBOOL8924961TcAddressTypeOutputMinPressureREAL32925121E-11vDisconnectedREAL32925440.18vMaxValidREAL32925769.6vMaxREAL32926089.9vValidLoREAL32926400.22vMinREAL32926720.6cDefaultPressureREAL32927040bWasOnBOOL892736TcPersistentbAutoRecoverBOOL892744TcPersistentbAutoRecoverWriteBOOL892752TcPersistentACT_LoggerIOACT_RecoverACT_PersistentM_HVEBOOL8enableBOOL8M_RecoverBOOL8M_AutoOnBOOL8PouTypeFunctionBlockFB_GCC_Test33652736FB_TestSuitePGST_VG105633558784fb_MKS422FB_MKS4229280033559872i_iPRESS_RINT1633652672TcAddressTypeOutputcycleINT16336526880M_InterlockM_SelfProtectionM_INITM_CheckRangeExpectedREAL32ActualREAL32eStateExpectedE_PressureState16eStateActualE_PressureState16PouTypeFunctionBlockVERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024_Implicit_KindOfTask16INT_implicit_cyclic0_implicit_event1_implicit_external2_implicit_freewheeling3_Implicit_Jitter_Distribution48wRangeMaxWORD160wCountJitterNegWORD1616wCountJitterPosWORD1632hide_Implicit_Task_Info896dwVersionDWORD320pszNameSTRING(80)6464nPriorityINT16128KindOf_Implicit_KindOfTask16144bWatchdogBOOL8160bProfilingTaskBOOL8168dwEventFunctionPointerBYTE64192pszExternalEventSTRING(80)64256dwTaskEntryFunctionPointerBYTE64320dwWatchdogSensitivityDWORD32384dwIntervalDWORD32416dwWatchdogTimeDWORD32448dwLastCycleTimeDWORD32480dwAverageCycleTimeDWORD32512dwMaxCycleTimeDWORD32544dwMinCycleTimeDWORD32576diJitterDINT32608diJitterMinDINT32640diJitterMaxDINT32672dwCycleCountDWORD32704wTaskStatusWORD16736wNumOfJitterDistributionsWORD16752pJitterDistribution_Implicit_Jitter_Distribution64768bWithinSPSTimeSlicingBOOL8832byDummyBYTE8840bShouldBlockBOOL8848bActiveBOOL8856dwIECCycleCountDWORD32864hideLCLSGeneralEventClassCriticalCriticalErrorErrorWarningWarningInfoInfoVerboseVerboseL2SIVacuum{08500001-0000-0000-F000-000000000064}0PlcTask#x020100300PlcTask Inputs066650112PRG_Test.fb_VGC_Test.VGC.i_xOpnLS8BOOLTcAddressTypeInput357830784PRG_Test.fb_VGC_Test.VGC.i_xClsLS8BOOLTcAddressTypeInput357830792PRG_Test.fb_VRC_Test.VRC.i_xOpnLS8BOOLTcAddressTypeInput392001856PRG_Test.fb_VRC_Test.VRC.i_xClsLS8BOOLTcAddressTypeInput392001864PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.i_iPRESS16INTTcAddressTypeInput425652880PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.i_xSP_DI8BOOLTcAddressTypeInput425652896PRG_Test.fb_PTM_Test.fb_TwisTorr.i_xAtSpd8BOOLTcAddressTypeInput459303656PRG_Test.fb_PTM_Test.fb_TwisTorr.i_xFault8BOOLTcAddressTypeInput459303664PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xDecel8BOOLTcAddressTypeInput459391936PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xAccel8BOOLTcAddressTypeInput459391944PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xRotate8BOOLTcAddressTypeInput459391952PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xNCFault8BOOLTcAddressTypeInput459391960PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_xAtSpd8BOOLTcAddressTypeInput459391968PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iRawSpeed16INTTcAddressTypeInput459391984PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iTempMon5V 0->100C]]>16INTTcAddressTypeInput459392000PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.i_iCurrentMon5V 0->10A]]>16INTTcAddressTypeInput459392016PRG_Test.fb_PTM_Test.q_iSpeedSet16INTTcAddressTypeInput459392144PRG_Test.fb_GPI_Test.fb_MKS275.i_iPRESS_R16INTTcAddressTypeInput493042176PRG_Test.fb_GPI_Test.fb_MKS317.i_iPRESS_R16INTTcAddressTypeInput493133536PRG_Test.fb_GCC_Test.fb_MKS422.i_iPRESS_R16INTTcAddressTypeInput5267862401PlcTask Outputs066650112PRG_Test.fb_VGC_Test.VGC.q_xOPN_DO8BOOLTcAddressTypeOutput357830800PRG_Test.fb_VGC_Test.io_fbFFHWO.q_xFastFaultOut8BOOLpytmc
pv: FaultHWO
io: i
field: DESC Hardware Output Status
- TcAddressTypeOutput357832744PRG_Test.fb_VRC_Test.VRC.q_xOPN_DO8BOOLTcAddressTypeOutput392001296PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.q_xHVEna_DO8BOOLTcAddressTypeOutput425652288PRG_Test.fb_PTM_Test.fb_TwisTorr.q_RunDO8BOOLTcAddressTypeOutput459303096PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xStart8BOOLTcAddressTypeOutput459391456PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xStop8BOOLTcAddressTypeOutput459391464PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xReset8BOOLTcAddressTypeOutput459391472PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xProtection8BOOLTcAddressTypeOutput459391480PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xSetSpeed8BOOLTcAddressTypeOutput459391488PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_iSpeedSet16INTTcAddressTypeOutput459391504PRG_Test.fb_PTM_Test.i_diCurSpd16INTTcAddressTypeOutput459391584PRG_Test.fb_PTM_Test.i_iRawSpeed16INTTcAddressTypeOutput459391600PRG_Test.fb_PTM_Test.i_iTempMon5V 0->100C]]>16INTTcAddressTypeOutput459391616PRG_Test.fb_PTM_Test.i_iCurrentMon5V 0->10A]]>16INTTcAddressTypeOutput459391632PRG_Test.fb_GPI_Test.i_iPRESS_R16INTTcAddressTypeOutput493133248PRG_Test.fb_GCC_Test.fb_MKS422.q_xHV_DIS8BOOL1TcAddressTypeOutput526785680PRG_Test.fb_GCC_Test.i_iPRESS_R16INTTcAddressTypeOutput5267859843PlcTask Internal066650112DefaultGlobals.stSys40ST_SystemTcVarGlobal4096000GVL_Logger.bTrickleTripped8BOOLpytmc
+ TcAddressTypeOutput357833320PRG_Test.fb_VRC_Test.VRC.q_xOPN_DO8BOOLTcAddressTypeOutput392001872PRG_Test.fb_PIP_Test.fb_PIP_GAMMA.q_xHVEna_DO8BOOLTcAddressTypeOutput425652864PRG_Test.fb_PTM_Test.fb_TwisTorr.q_RunDO8BOOLTcAddressTypeOutput459303672PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xStart8BOOLTcAddressTypeOutput459392032PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xStop8BOOLTcAddressTypeOutput459392040PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xReset8BOOLTcAddressTypeOutput459392048PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xProtection8BOOLTcAddressTypeOutput459392056PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_xSetSpeed8BOOLTcAddressTypeOutput459392064PRG_Test.fb_PTM_Test.fb_PTM_Ebara_010M.q_iSpeedSet16INTTcAddressTypeOutput459392080PRG_Test.fb_PTM_Test.i_diCurSpd16INTTcAddressTypeOutput459392160PRG_Test.fb_PTM_Test.i_iRawSpeed16INTTcAddressTypeOutput459392176PRG_Test.fb_PTM_Test.i_iTempMon5V 0->100C]]>16INTTcAddressTypeOutput459392192PRG_Test.fb_PTM_Test.i_iCurrentMon5V 0->10A]]>16INTTcAddressTypeOutput459392208PRG_Test.fb_GPI_Test.i_iPRESS_R16INTTcAddressTypeOutput493133824PRG_Test.fb_GCC_Test.fb_MKS422.q_xHV_DIS8BOOL1TcAddressTypeOutput526786256PRG_Test.fb_GCC_Test.i_iPRESS_R16INTTcAddressTypeOutput5267865603PlcTask Internal066650112DefaultGlobals.stSys40ST_SystemTcVarGlobal4096000GVL_Logger.bTrickleTripped8BOOLpytmc
pv: @(PREFIX)LCLSGeneral:GlobalLogTrickleTrip
io: i
field: DESC Tripped by overall log count
@@ -944,21 +944,21 @@ This function provides ILK and Set Point Protection for the Cold Cathode]]>8BOOLTcVarGlobal4401248GVL_TcUnit.NumberOfInitializedTestSuites16UINT0TcVarGlobal4401264GVL_TcUnit.TcUnitRunner311180352FB_TcUnitRunnerTcVarGlobal4401280GVL_TcUnit.CurrentTestSuiteBeingCalled64FB_TestSuiteTcVarGlobal315581632GVL_TcUnit.CurrentTestNameBeingCalled2048T_MaxStringTcVarGlobal315581696GVL_TcUnit.TestSuiteAddresses32000FB_TestSuite1500TcVarGlobal315583744GVL_TcUnit.CurrentlyRunningOrderedTestInTestSuite8000UINT1500LowerBorder1UpperBorder100TcVarGlobal315615744GVL_TcUnit.AdsMessageQueue8321152FB_AdsLogStringMessageFifoQueueTcVarGlobal315623744Global_Version.stLibVersion_TcUnit288ST_LibVersion.iMajor1.iMinor2.iBuild0.iRevision0.sVersion1.2.0.0const_non_replacedTcVarGlobal323944896GVL_PfeifferParameters.gcMaxPfeifferPumps16INT20TcVarGlobal323945184Constants.gc_iSizeOfGGOArray16INT50TcVarGlobal323945200Constants.gc_GaugeValidState16INT4TcVarGlobal323945216Global_Variables.g_iSizeOfGGOArray16INT50TcVarGlobal323945232Global_Variables.g_stSystem40ST_System.xFirstScan1TcVarGlobal323945248PMPS_GVL.AUX_ATTENUATORS16UINT16TcVarGlobal323945296Global_Variables.g_DummyVG1056ST_VGTcVarGlobal323945312Global_Variables.fbGetCurTaskIdx256GETCURTASKINDEXTcVarGlobal323946368Global_Variables.TaskInfo1024PlcTaskSystemInfoTcVarGlobal323946624PMPS_GVL.stRequestedBeamParameters1760ST_BeamParamspytmc
+ The below array is only used for TEST_ORDERED()-tests. ]]>8000UINT1500LowerBorder1UpperBorder100TcVarGlobal315615744GVL_TcUnit.AdsMessageQueue8321152FB_AdsLogStringMessageFifoQueueTcVarGlobal315623744Global_Version.stLibVersion_TcUnit288ST_LibVersion.iMajor1.iMinor2.iBuild0.iRevision0.sVersion1.2.0.0const_non_replacedTcVarGlobal323944896GVL_PfeifferParameters.gcMaxPfeifferPumps16INT20TcVarGlobal323945184Constants.gc_iSizeOfGGOArray16INT50TcVarGlobal323945200Global_Version.stLibVersion_LCLSVacuumSerialDriverLib288ST_LibVersion.iMajor1.iMinor3.iBuild2.iRevision0.nFlags1.sVersion1.3.2const_non_replacedTcVarGlobal323945216Constants.gc_GaugeValidState16INT4TcVarGlobal323945504Global_Variables.g_iSizeOfGGOArray16INT50TcVarGlobal323945520Global_Variables.g_stSystem40ST_System.xFirstScan1TcVarGlobal323945536PMPS_GVL.AUX_ATTENUATORS16UINT16TcVarGlobal323945584Global_Variables.g_DummyVG1056ST_VGTcVarGlobal323945600PMPS_GVL.EXCLUDED_ASSERTION_ID32UDINT4294967295TcVarGlobal323946656Global_Variables.fbGetCurTaskIdx256GETCURTASKINDEXTcVarGlobal323946688Global_Variables.TaskInfo1024PlcTaskSystemInfoTcVarGlobal323946944Global_Version.stLibVersion_LCLS_Vacuum288ST_LibVersion.iMajor2.iMinor3.iBuild4.iRevision0.nFlags1.sVersion2.3.4const_non_replacedTcVarGlobal323947968PMPS_GVL.stRequestedBeamParameters1760ST_BeamParamspytmc
pv: @(PREFIX)RequestedBP
io: i
archive: 1Hz monitor
- TcVarGlobal323947648PMPS_GVL.stCurrentBeamParameters1760ST_BeamParamspytmc
+ TcVarGlobal323948256PMPS_GVL.stCurrentBeamParameters1760ST_BeamParamspytmc
pv: @(PREFIX)CurrentBP
io: i
archive: 1Hz monitor
- TcVarGlobal323949408PMPS_GVL.g_areVBoundaries1024REAL032pytmc
+ TcVarGlobal323950016PMPS_GVL.g_areVBoundaries1024REAL032pytmc
pv: @(PREFIX)eVRangeCnst
io: i
archive: 1Hz monitor
field: DESC Active eV Range constants
field: EGU eV
- TcVarGlobal323951168PMPS_GVL.PERange64PE_RangesTcVarGlobal323952192PMPS_GVL.EXCLUDED_ASSERTION_ID32UDINT4294967295TcVarGlobal323952256PMPS_GVL.MAX_DEVICE_STATES32UDINT300TcVarGlobal323952288PMPS_GVL.VISIBLE_TEST_VELOCITY64LREAL10TcVarGlobal323952320PMPS_GVL.FAST_TEST_VELOCITY64LREAL100TcVarGlobal323952384PMPS_GVL.TRANS_SCALING_FACTOR32REAL1TcVarGlobal323952448PMPS_GVL.MAX_VETO_DEVICES16UINT16TcVarGlobal323952480PMPS_GVL.cnMaxStateArrayLenTcVarGlobal323951776PMPS_GVL.MAX_DEVICE_STATES32UDINT300TcVarGlobal323952800PMPS_GVL.PERange64PE_RangesTcVarGlobal323952832PMPS_GVL.VISIBLE_TEST_VELOCITY64LREAL10TcVarGlobal323952896PMPS_GVL.FAST_TEST_VELOCITY64LREAL100TcVarGlobal323952960PMPS_GVL.TRANS_SCALING_FACTOR32REAL1TcVarGlobal323953024PMPS_GVL.MAX_VETO_DEVICES16UINT16TcVarGlobal323953056PMPS_GVL.cnMaxStateArrayLen16INT20TcVarGlobal323952496PMPS_GVL.stAttenuators64ST_PMPS_Attenuator.nTran1.xAttOK1TcVarGlobal323952512PMPS_GVL.cstFullBeam1760ST_BeamParamspytmc
+ );]]>16INT20TcVarGlobal323953072PMPS_GVL.stAttenuators64ST_PMPS_Attenuator.nTran1.xAttOK1TcVarGlobal323953088PMPS_GVL.cstFullBeam1760ST_BeamParamspytmc
pv: @(PREFIX)FullBeamCnst
io: i
archive: 1Hz monitor
field: DESC Full beam constant
- TcVarGlobal323952576PMPS_GVL.cst0RateBeam1760ST_BeamParamspytmc
+ TcVarGlobal323953152PMPS_GVL.cst0RateBeam1760ST_BeamParamspytmc
pv: @(PREFIX)0RateBeamCnst
io: i
archive: 1Hz monitor
field: DESC 0-rate beam constant
- TcVarGlobal323954336PMPS_GVL.MAX_APERTURES16UINT4TcVarGlobal323956096PMPS_GVL.g_cBoundaries16INT31TcVarGlobal323956112PMPS_GVL.DUMMY_AUX_ATT_ARRAY1024ST_PMPS_Attenuator116suppress_warning_0C0228TcVarGlobal323956128PMPS_GVL.reVHystTcVarGlobal323954912PMPS_GVL.MAX_APERTURES16UINT4TcVarGlobal323956672PMPS_GVL.g_cBoundaries16INT31TcVarGlobal323956688PMPS_GVL.DUMMY_AUX_ATT_ARRAY1024ST_PMPS_Attenuator116suppress_warning_0C0228TcVarGlobal323956704PMPS_GVL.reVHyst32REAL5pytmc
pv: @(PREFIX)eVRangeHyst
@@ -986,22 +986,22 @@ This function provides ILK and Set Point Protection for the Cold Cathode]]>TcVarGlobal323957152PMPS_GVL.g_areVBoundariesL1024REAL032[0]1000[1]1700[2]2100[3]2500[4]3800[5]4000[6]5000[7]7000[8]7500[9]7700[10]8900[11]10000[12]11100[13]12000[14]13000[15]13500[16]14000[17]16900[18]18000[19]20000[20]22000[21]24000[22]25000[23]25500[24]26000[25]27000[26]28000[27]28500[28]29000[29]30000[30]60000[31]90000pytmc
+ TcVarGlobal323957728PMPS_GVL.g_areVBoundariesL1024REAL032[0]1000[1]1700[2]2100[3]2500[4]3800[5]4000[6]5000[7]7000[8]7500[9]7700[10]8900[11]10000[12]11100[13]12000[14]13000[15]13500[16]14000[17]16900[18]18000[19]20000[20]22000[21]24000[22]25000[23]25500[24]26000[25]27000[26]28000[27]28500[28]29000[29]30000[30]60000[31]90000pytmc
pv: @(PREFIX)L:eVRangeCnst
io: i
archive: 1Hz monitor
field: DESC eV Range constants
field: EGU eV
- TcVarGlobal323957184PMPS_GVL.g_areVBoundariesK1024REAL032[0]100[1]250[2]270[3]350[4]400[5]450[6]480[7]530[8]680[9]730[10]850[11]1100[12]1150[13]1250[14]1450[15]1500[16]1550[17]1650[18]1700[19]1750[20]1820[21]1850[22]2000[23]2200[24]2500[25]2800[26]3000[27]3150[28]3500[29]4000[30]5300[31]7000pytmc
+ TcVarGlobal323957760PMPS_GVL.g_areVBoundariesK1024REAL032[0]100[1]250[2]270[3]350[4]400[5]450[6]480[7]530[8]680[9]730[10]850[11]1100[12]1150[13]1250[14]1450[15]1500[16]1550[17]1650[18]1700[19]1750[20]1820[21]1850[22]2000[23]2200[24]2500[25]2800[26]3000[27]3150[28]3500[29]4000[30]5300[31]7000pytmc
pv: @(PREFIX)K:eVRangeCnst
io: i
archive: 1Hz monitor
field: DESC eV Range constants
field: EGU eV
- TcVarGlobal323958208PMPS_PARAM.MAX_FAST_FAULTS16UINT50TcVarGlobal323959232PRG_Test.TotalTests16INT0323959248PMPS_PARAM.MAX_ASSERTIONS32UDINT20TcVarGlobal323959264PMPS_PARAM.TRANS_MARGIN32REAL0.05TcVarGlobal323959296Constants.gc_iSizeOfGGOArray16INT50TcVarGlobal323959344PMPS_TOOLS.fbJson384FB_JsonSaxWriterTcVarGlobal323959360Global_Version.stLibVersion_Tc2_MC2288ST_LibVersion.iMajor3.iMinor3.iBuild48.iRevision0.nFlags1.sVersion3.3.48.0const_non_replacedTcVarGlobal323959744Constants.gc_GaugeValidState16INT4TcVarGlobal323960032Global_Variables.g_iSizeOfGGOArray16INT50TcVarGlobal323960048Global_Variables.TcMcGlobal7104_TCMCGLOBALTcVarGlobal323960064Global_Variables.DEFAULT_HOME_POSITION64LREAL1E+307TcVarGlobal323967168Global_Variables.DEFAULT_BACKLASHVALUE64LREAL1E+307TcVarGlobal323967232Global_Version.stLibVersion_Tc2_Math288ST_LibVersion.iMajor3.iMinor3.iBuild1.iRevision0.sVersion3.3.1.0const_non_replacedTcVarGlobal323967296Global_Version.stLibVersion_Tc2_DataExchange288ST_LibVersion.iMajor3.iMinor3.iBuild5.iRevision0.nFlags0.sVersion3.3.5.0const_non_replacedTcVarGlobal323967584PRG_Test.fb_VGC_Test34265600FB_VGC_Test324087488PRG_Test.fb_VRC_Test33648320FB_VRC_Test358353088PRG_Test.fb_PIP_Test33655552FB_PIP_Test392001408PRG_Test.fb_PTM_Test33734720FB_PTM_Test425656960PRG_Test.fb_GPI_Test33741632FB_GPI_Test459391680PRG_Test.fb_GCC_Test33652736FB_GCC_Test493133312Global_Variables.g_stSystem40ST_System.xFirstScan1TcVarGlobal526787072Constants.bLittleEndian8BOOL1TcVarGlobal526787112Constants.bSimulationMode8BOOL0TcVarGlobal526787120Constants.bFPUSupport8BOOL1TcVarGlobal526787128Global_Variables.g_DummyVG1056ST_VGTcVarGlobal526787136Constants.nRegisterSize16WORD64TcVarGlobal526788192Constants.nPackMode16UINT8TcVarGlobal526788208Global_Variables.fbGetCurTaskIdx256GETCURTASKINDEXTcVarGlobal526788224Global_Variables.TaskInfo1024PlcTaskSystemInfoTcVarGlobal526788480Global_Version.stLibVersion_LCLS_Vacuum288ST_LibVersion.iMajor0.iMinor0.iBuild0.iRevision0.sVersion0.0.0const_non_replacedTcVarGlobal526789504Constants.RuntimeVersion64VERSION.uiMajor3.uiMinor5.uiServicePack6.uiPatch0TcVarGlobal526789792Constants.CompilerVersion64VERSION.uiMajor3.uiMinor5.uiServicePack10.uiPatch100TcVarGlobal526789856Constants.RuntimeVersionNumeric32DWORD50660864TcVarGlobal526789920Constants.CompilerVersionNumeric32DWORD50661988TcVarGlobal526789952TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal526789984TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal526790016TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal526792064TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal526793088TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal526793152TC_EVENTS.LCLSGeneralEventClass960ST_LCLSGeneralEventClasstc_no_symbolunusedconst_non_replacedsuppress_warning_0C0228TcVarGlobal5268407684PlcTask Retains066650112PMPS_GVL.SuccessfulPreemption32UDINTpytmc
+ TcVarGlobal323958784PMPS_PARAM.MAX_FAST_FAULTS16UINT50TcVarGlobal323959808PRG_Test.TotalTests16INT0323959824PMPS_PARAM.MAX_ASSERTIONS32UDINT20TcVarGlobal323959840PMPS_PARAM.TRANS_MARGIN32REAL0.05TcVarGlobal323959872Constants.gc_iSizeOfGGOArray16INT50TcVarGlobal323959920PMPS_TOOLS.fbJson384FB_JsonSaxWriterTcVarGlobal323959936Global_Version.stLibVersion_Tc2_MC2288ST_LibVersion.iMajor3.iMinor3.iBuild48.iRevision0.nFlags1.sVersion3.3.48.0const_non_replacedTcVarGlobal323960320Constants.gc_GaugeValidState16INT4TcVarGlobal323960608Global_Variables.g_iSizeOfGGOArray16INT50TcVarGlobal323960624Global_Variables.TcMcGlobal7104_TCMCGLOBALTcVarGlobal323960640Global_Variables.DEFAULT_HOME_POSITION64LREAL1E+307TcVarGlobal323967744Global_Variables.DEFAULT_BACKLASHVALUE64LREAL1E+307TcVarGlobal323967808Global_Version.stLibVersion_Tc2_Math288ST_LibVersion.iMajor3.iMinor3.iBuild1.iRevision0.sVersion3.3.1.0const_non_replacedTcVarGlobal323967872Global_Version.stLibVersion_Tc2_DataExchange288ST_LibVersion.iMajor3.iMinor3.iBuild5.iRevision0.nFlags0.sVersion3.3.5.0const_non_replacedTcVarGlobal323968160PRG_Test.fb_VGC_Test34265600FB_VGC_Test324088064PRG_Test.fb_VRC_Test33648320FB_VRC_Test358353664PRG_Test.fb_PIP_Test33655552FB_PIP_Test392001984PRG_Test.fb_PTM_Test33734720FB_PTM_Test425657536PRG_Test.fb_GPI_Test33741632FB_GPI_Test459392256PRG_Test.fb_GCC_Test33652736FB_GCC_Test493133888Global_Variables.g_stSystem40ST_System.xFirstScan1TcVarGlobal526787648Constants.bLittleEndian8BOOL1TcVarGlobal526787688Constants.bSimulationMode8BOOL0TcVarGlobal526787696Constants.bFPUSupport8BOOL1TcVarGlobal526787704Global_Variables.g_DummyVG1056ST_VGTcVarGlobal526787712Constants.nRegisterSize16WORD64TcVarGlobal526788768Constants.nPackMode16UINT8TcVarGlobal526788784Global_Variables.fbGetCurTaskIdx256GETCURTASKINDEXTcVarGlobal526788800Global_Variables.TaskInfo1024PlcTaskSystemInfoTcVarGlobal526789056Global_Version.stLibVersion_LCLS_Vacuum288ST_LibVersion.iMajor0.iMinor0.iBuild0.iRevision0.sVersion0.0.0const_non_replacedTcVarGlobal526790080Constants.RuntimeVersion64VERSION.uiMajor3.uiMinor5.uiServicePack6.uiPatch0TcVarGlobal526790368Constants.CompilerVersion64VERSION.uiMajor3.uiMinor5.uiServicePack10.uiPatch100TcVarGlobal526790432Constants.RuntimeVersionNumeric32DWORD50660864TcVarGlobal526790496Constants.CompilerVersionNumeric32DWORD50661988TcVarGlobal526790528TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal526790560TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal526790592TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal526792640TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal526793664TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal526793728TC_EVENTS.LCLSGeneralEventClass960ST_LCLSGeneralEventClasstc_no_symbolunusedconst_non_replacedsuppress_warning_0C0228TcVarGlobal5268256004PlcTask Retains066650112PMPS_GVL.SuccessfulPreemption32UDINTpytmc
pv: @(PREFIX)SuccessfulPreemptions
io: i
TcVarGlobal3072000PMPS_GVL.AccumulatedFF32UDINTpytmc
pv: @(PREFIX)AccumulatedFastFaults
io: i
- TcVarGlobal3072032PMPS_GVL.BP_jsonDoc64SJsonValueTcVarGlobal3072064LCLSGeneralEventClassApplicationNamePort_851ChangeDate2024-03-22T14:00:03GeneratedCodeSize700416GlobalDataSize65372160
\ No newline at end of file
+ TcVarGlobal3072032PMPS_GVL.BP_jsonDoc64SJsonValueTcVarGlobal3072064LCLSGeneralEventClassApplicationNamePort_851ChangeDate2024-05-24T14:10:32GeneratedCodeSize700416GlobalDataSize65372160
\ No newline at end of file
diff --git a/L2SIVacuum/POUs/Functions/Gauges/FB_IE514.TcPOU b/L2SIVacuum/POUs/Functions/Gauges/FB_IE514.TcPOU
new file mode 100644
index 0000000..8c3c304
--- /dev/null
+++ b/L2SIVacuum/POUs/Functions/Gauges/FB_IE514.TcPOU
@@ -0,0 +1,445 @@
+
+
+
+
+
+ IG_CH1.xTurnOnTime);
+tHvDis_CH2(IN := IG_CH2.q_xHV_DIS, Q => IG_CH2.xTurnOnTime);
+
+(*Raw voltage conversion*)
+//check no div by zero
+IF (iTermBits = 0) THEN iTermBits := 30518; END_IF
+rV := 10*INT_TO_REAL(i_iPRESS_R)/iTermBits;
+
+(*RAW voltage to Pressure conversion*)
+rPRESS := LREAL_TO_REAL(EXPT(10, rV/10*LOG(cMaxPressure/cMinPressure) + LOG(cMinPressure))); //manual page 70 IM540 (Mode Full), (Scale) = Log
+IF NOT i_xCH2_SEL THEN
+ IG_CH1.rPRESS := rPRESS;
+ IG_CH2.rPRESS := 0;
+ELSE
+ IG_CH2.rPRESS := rPRESS;
+ IG_CH1.rPRESS := 0;
+END_IF
+
+(*Pressure gauge State checks*)
+//CH1
+IF bCh1Sel AND IG_CH1.xHV_SW THEN
+ IF NOT i_xERR_CH1 THEN
+ IG_CH1.eState := GaugeDisconnected;
+ IG_CH1.rPRESS := 0;
+ ELSIF rV <= cGaugeMaxVoltage AND rV >= cGaugeMinVoltage AND IG_CH1.i_xHV_ON THEN
+ IG_CH1.eState := Valid; // NORMAL
+ ELSIF rV >= 0.0 AND rV < cGaugeMinVoltage AND IG_CH1.i_xHV_ON THEN
+ IG_CH1.eState := OoR; //Out of range according to manual
+ ELSIF rV > cGaugeMaxVoltage AND rV < (cGaugeMaxVoltage + cDeadband) AND IG_CH1.i_xHV_ON THEN
+ IG_CH1.eState := OoR; //Out of range according to manual
+ ELSIF rV > (cGaugeMaxVoltage + cDeadband) AND tHvDis_CH1.Q THEN
+ IG_CH1.eState := GaugeDisconnected; //gauge disconnected
+ IG_CH1.rPRESS := 0;
+ ELSIF rV > (cGaugeMaxVoltage + cDeadband) AND NOT tHvDis_CH1.Q THEN
+ IG_CH1.eState := Starting; //gauge is starting
+ IG_CH1.rPRESS := 0;
+ ELSE
+ IG_CH1.eState := PressInvalid; //other fault - could be no gauge, controller powering up etc.
+ IG_CH1.rPRESS := 0;
+ END_IF
+ELSE
+ IG_CH1.eState := Off; // Gauge turned OFF
+ IG_CH1.rPRESS := 0;
+END_IF
+
+//CH2
+IF bCh2Sel AND IG_CH2.xHV_SW THEN
+ IF NOT i_xERR_CH2 THEN
+ IG_CH2.eState := GaugeDisconnected;
+ IG_CH2.rPRESS := 0;
+ ELSIF rV <= cGaugeMaxVoltage AND rV >= cGaugeMinVoltage AND IG_CH2.i_xHV_ON THEN
+ IG_CH2.eState := Valid; // NORMAL
+ ELSIF rV >= 0.0 AND rV < cGaugeMinVoltage AND IG_CH2.i_xHV_ON THEN
+ IG_CH2.eState := OoR; //Out of range according to manual
+ ELSIF rV > cGaugeMaxVoltage AND rV < (cGaugeMaxVoltage + cDeadband) AND IG_CH2.i_xHV_ON THEN
+ IG_CH2.eState := OoR; //Out of range according to manual
+ ELSIF rV > (cGaugeMaxVoltage + cDeadband) AND tHvDis_CH2.Q THEN
+ IG_CH2.eState := GaugeDisconnected; //gauge disconnected
+ IG_CH2.rPRESS := 0;
+ ELSIF rV > (cGaugeMaxVoltage + cDeadband) AND NOT tHvDis_CH2.Q THEN
+ IG_CH2.eState := Starting; //gauge is starting
+ IG_CH2.rPRESS := 0;
+ ELSE
+ IG_CH2.eState := PressInvalid; //other fault - could be no gauge, controller powering up etc.
+ IG_CH2.rPRESS := 0;
+ END_IF
+ELSE
+ IG_CH2.eState := Off; // Gauge turned OFF
+ IG_CH2.rPRESS := 0;
+END_IF
+
+(* Ion Gauge Protection Functions *)
+(* If the PG pressure is greater than the VG.PRO_SP then the gauge is disabled *)
+(* If the PG pressure is less than the VG.PRO_SP then the gauge is enabled *)
+(* This FB also implements some hysteresis so the gauge doesn't have rapid power cycling while near the turn on boundary *)
+
+//CH1
+IF (PG.rPRESS <= IG_CH1.rPRO_SP) AND PG.xPRESS_OK THEN
+ IG_CH1.q_xHV_DIS := IG_CH1.xHV_SW;
+ IG_CH1.xILKOk := TRUE;
+ELSIF IG_CH1.q_xHV_DIS AND tHvDis_CH1.Q THEN
+ IF IG_CH1.rPRESS > (IG_CH1.rPRO_SP + IG_CH1.rHYS_PR) OR PG.rPRESS > (IG_CH1.rPRO_SP + IG_CH1.rHYS_PR) THEN
+ IG_CH1.q_xHV_DIS := FALSE;
+ IG_CH1.xHV_SW := FALSE;
+ END_IF
+ELSE
+ IG_CH1.q_xHV_DIS := FALSE;
+ IG_CH1.xHV_SW := FALSE;
+ IG_CH1.xILKOk := FALSE;
+END_IF
+
+//CH2
+IF (PG.rPRESS <= IG_CH2.rPRO_SP) AND PG.xPRESS_OK THEN
+ IG_CH2.q_xHV_DIS := IG_CH2.xHV_SW;
+ IG_CH2.xILKOk := TRUE;
+ELSIF IG_CH2.q_xHV_DIS AND tHvDis_CH2.Q THEN
+ IF IG_CH2.rPRESS > (IG_CH2.rPRO_SP + IG_CH2.rHYS_PR) OR PG.rPRESS > (IG_CH2.rPRO_SP + IG_CH2.rHYS_PR) THEN
+ IG_CH2.q_xHV_DIS := FALSE;
+ IG_CH2.xHV_SW := FALSE;
+ END_IF
+ELSE
+ IG_CH2.q_xHV_DIS := FALSE;
+ IG_CH2.xHV_SW := FALSE;
+ IG_CH2.xILKOk := FALSE;
+END_IF
+
+
+(*Pressure gauge OK checks, Backwards compatibility*)
+IG_CH1.xPRESS_OK := ((IG_CH1.eState = Valid) OR IG_CH1.xBAKEOUT);
+IG_CH2.xPRESS_OK := ((IG_CH2.eState = Valid) OR IG_CH2.xBAKEOUT);
+
+(*Setpoint evaluation*)
+IG_CH1.xAT_VAC := IG_CH1.xPRESS_OK AND IG_CH1.rPRESS < IG_CH1.rVAC_SP;
+IG_CH2.xAT_VAC := IG_CH2.xPRESS_OK AND IG_CH2.rPRESS < IG_CH2.rVAC_SP;
+
+(*Logger*)
+ACT_Logger();
+
+(*Soft IO Linking*)
+IO();
+
+(*Load or save the persistent variables*)
+ACT_Persistent();]]>
+
+
+
+ IG_CH1.eState THEN
+ CASE IG_CH1.eState OF
+ ValidHi:
+ fbLogger(sMsg:='Gauge(CH1) pressure valid high.', eSevr:=TcEventSeverity.Info);
+ ValidLo:
+ fbLogger(sMsg:='Gauge(CH1) pressure valid low.', eSevr:=TcEventSeverity.Info);
+ Valid:
+ fbLogger(sMsg:='Gauge(CH1) pressure valid.', eSevr:=TcEventSeverity.Info);
+ GaugeDisconnected:
+ fbLogger(sMsg:='Gauge(CH1) Disconnected.', eSevr:=TcEventSeverity.Critical);
+ PressInvalid:
+ fbLogger(sMsg:='Gauge(CH1) pressure invalid.', eSevr:=TcEventSeverity.Warning);
+ OoR:
+ fbLogger(sMsg:='Gauge(CH1) pressure out of range.', eSevr:=TcEventSeverity.Warning);
+ Starting:
+ fbLogger(sMsg:='Gauge(CH1) starting.', eSevr:=TcEventSeverity.Info);
+ END_CASE
+ ePrevStateIG_CH1 := IG_CH1.eState;
+ END_IF
+END_IF
+
+(*CH2 of IM540 Controller*)
+IF (IG_CH2.xLog) THEN
+ IF NOT IG_CH2.xILKOk AND IG_CH2.q_xHV_DIS THEN
+ fbLogger(sMsg:='Lost external interlock while gauge(CH2) was on.', eSevr:=TcEventSeverity.Critical);
+ END_IF
+
+ // Log Action
+ tAction_CH2(CLK := IG_CH2.xHV_SW);
+ IF tAction_CH2.Q THEN fbLogger(sMsg:='Ion gauge(CH2) commanded to switch on', eSevr:=TcEventSeverity.Info); END_IF
+
+ //STATE Logger
+ IF ePrevStateIG_CH2 <> IG_CH2.eState THEN
+ CASE IG_CH2.eState OF
+ ValidHi:
+ fbLogger(sMsg:='Gauge(CH2) pressure valid high.', eSevr:=TcEventSeverity.Info);
+ ValidLo:
+ fbLogger(sMsg:='Gauge(CH2) pressure valid low.', eSevr:=TcEventSeverity.Info);
+ Valid:
+ fbLogger(sMsg:='Gauge(CH2) pressure valid.', eSevr:=TcEventSeverity.Info);
+ GaugeDisconnected:
+ fbLogger(sMsg:='Gauge(CH2) Disconnected.', eSevr:=TcEventSeverity.Critical);
+ PressInvalid:
+ fbLogger(sMsg:='Gauge(CH2) pressure invalid.', eSevr:=TcEventSeverity.Warning);
+ OoR:
+ fbLogger(sMsg:='Gauge(CH2) pressure out of range.', eSevr:=TcEventSeverity.Warning);
+ Starting:
+ fbLogger(sMsg:='Gauge(CH2) starting.', eSevr:=TcEventSeverity.Info);
+ END_CASE
+ ePrevStateIG_CH2 := IG_CH2.eState;
+ END_IF
+END_IF]]>
+
+
+
+
+ 0) THEN
+ IG_CH1.rVAC_SP := rVAC_SP_CH1;
+ END_IF;
+ IF (rPRO_SP_CH1 <> 0) THEN
+ IG_CH1.rPRO_SP := rPRO_SP_CH1;
+ END_IF;
+ IF (rHYS_PR_CH1 <> 0) THEN
+ IG_CH1.rHYS_PR := rHYS_PR_CH1;
+ END_IF;
+ //CH2
+ IF (rVAC_SP_CH2 <> 0) THEN
+ IG_CH2.rVAC_SP := rVAC_SP_CH2;
+ END_IF;
+ IF (rPRO_SP_CH2 <> 0) THEN
+ IG_CH2.rPRO_SP := rPRO_SP_CH2;
+ END_IF;
+ IF (rHYS_PR_CH2 <> 0) THEN
+ IG_CH2.rHYS_PR := rHYS_PR_CH2;
+ END_IF;
+END_IF
+(*Check if a new value has been written in the structure variable copy it to the persistent variable*)
+//CH1
+IF NOT (IG_CH1.rVAC_SP = rVAC_SP_CH1) THEN
+ rVAC_SP_CH1 := IG_CH1.rVAC_SP;
+END_IF;
+
+IF NOT (IG_CH1.rPRO_SP = rPRO_SP_CH1) THEN
+ rPRO_SP_CH1 := IG_CH1.rPRO_SP;
+END_IF;
+
+IF NOT (IG_CH1.rHYS_PR = rHYS_PR_CH1) THEN
+ rHYS_PR_CH1 := IG_CH1.rHYS_PR;
+END_IF;
+
+//CH2
+IF NOT (IG_CH2.rVAC_SP = rVAC_SP_CH2) THEN
+ rVAC_SP_CH2 := IG_CH2.rVAC_SP;
+END_IF;
+
+IF NOT (IG_CH2.rPRO_SP = rPRO_SP_CH2) THEN
+ rPRO_SP_CH2 := IG_CH2.rPRO_SP;
+END_IF;
+
+IF NOT (IG_CH2.rHYS_PR = rHYS_PR_CH2) THEN
+ rHYS_PR_CH2 := IG_CH2.rHYS_PR;
+END_IF;]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file