( (M . % + signature_flag
4294967296''crc
4193987172CallTask__PlcTaskFunction
RelativeStack+Output, IsCompiled, RelativeStack, Typified ptaskinfo _IMPLICIT_TASK_INFO
*Input, IsCompiled, RelativeStack, Typifiedpapplicationinfo_IMPLICIT_APPLICATION_INFO
Compiled, Typified, Located$89dabc1a-f794-4a99-ba91-1ea51be3ba39$00000000-0000-0000-0000-000000000000 131785522generate_implicit_init_function__Setup__Call__POUProgram$de1786e8-5c6e-5585-b03e-8ab179626a32
2728864722real32__to__any32indwType2External, Compiled, SuperGlobal, Typified, Located$adb07db6-6cb2-4889-b206-007b85f53578
4094399910any32__to__real32$bc57a7e2-ed11-422f-976f-8be4fc5666bf
2020165724
real32__eq in1!in2"$79084732-5d65-4953-878b-b9d1570ab3c3# 651050431$
real32__ne%$26c1b838-f805-4f80-b547-7a6b4efbbbb5&
1108587135'
real32__lt($8897f859-01db-4c48-85cd-8862ad90c271)76373463*
real32__le+$06045a98-b196-40fe-bbf3-cc6b9cd04fa6,
4168934275-
real32__gt.$57dc0ec0-25cf-4c02-9dde-c27a20a79806/
32024852910
real32__ge1$27ea9ccf-ca7d-4bbb-8a0b-76d96b1b096b2
10447566433real32__add4$4001e5c9-2959-421b-a1ea-3192b559210f5 2673141556real32__sub7$7af69ff9-2d09-4573-9668-4abfb8238c6b8
11036320749real32__mul:$07fdcf4d-2f32-4026-ba50-865a9a4cac44;
1466051322<real32__div=$7433aafb-0867-4fb3-b51c-62aedc81235f> 886904492?real32__abs@$a891677e-9887-4115-baf6-5bc18c14f21fA
3404262884Breal32__minC$7f040799-feda-40a7-b376-ee0db6e12abfD
4154332537Ereal32__maxF$c46be4ae-b278-40fc-8552-9cdb664b8607G 497866625H
real32__limitIin3J$6049606a-24c9-4d04-8810-fd7a837dc535K
1847162626L
real32__truncM$ef945a32-7190-4712-af4e-686069feba9eN 346942548Oreal32__tanP$84acc91c-76a8-41d8-8957-1617354730fcQ 843193954Rreal32__atanS$4e10f990-4cf5-4424-abd6-16195b2c1947T
2676881535Ureal32__sinV$b59097e9-0c6c-4edf-a18e-d34da5f674deW
4177298540Xreal32__asinY$12baf47b-573e-437a-b3eb-06f4c4745ccfZ 406941506[real32__cos\$21313f85-d945-4d56-bab3-9c0d70303453]
3446532930^real32__acos_$29048f1c-76ff-4555-a36d-61013b9112e7` 831403110a
real32__lnb$412735d8-6e6f-49d1-8d62-aad6e08f4198c
2281156508dreal32__loge$bac2aa4e-fb73-4beb-bee8-1cbe13a49551f
1964720339greal32__exph$f127665c-c7d1-4290-b6be-8db37fc1df1ai
2929814886jreal32__exptk$bbbdf0cf-b7ce-4f53-af3f-df8a531c4d5dl
2945838411mreal32__sqrtn$cf137188-d4b3-4d76-b1f6-87afe6ee2148o
2367094826p
int32__divq$16597b72-e6ca-4e3e-b487-0fab4f60f55dr
1538210473suint32__divt$1acf0b76-2778-4975-844a-6ec15f762b2eu 997952827v
int32__modw$32f74310-0500-40a8-bcdc-38e3a235c1a5x
1194593076yuint32__modz$cd4339d7-cb4c-4660-b471-ee4a5c114ad0{
3531525309|
int32__abs}$62876995-1a07-4244-a3f0-8c8f63eec49c~ 147726259int32__limit$79dd4eba-d759-4918-8c09-9ba7cedb378c
1413729490
uint32__limit$46a8a0a1-a4c6-464a-a53c-87329443b190
2280991083
int32__mul$3330a6c6-0b50-4a3c-91f0-5ad24d44fbf5
1292175001uint32__mul$47a65ed1-25f8-43b6-85a3-dee72d9a73cd
4142655437
int32__shr$1128c6ef-4d56-40a2-a91f-4f5dc0185d98
4111070444uint32__shr$c1f5d873-aaf1-4f92-b314-c17c78644b9d
2164893551uint32__shl$1393b595-1c79-4a79-a17f-db4b5fda7a44
2239779883uint32__rol$af9cbc04-84b4-409b-8830-f18c8ed3a6ec
4051699624uint32__ror$181ef5ee-7190-4ce0-ada3-cca4fd45a289 695114823 get__time$79ad9f0e-3a56-4c79-af55-c1dafc05b5e6
2006625495__sys__rts__cycle slotLower slotUpper
stTaskNameAnyIntstApplicationName$8f58c4c2-6bd5-47c7-a149-8588821180e6
2641387053__sys__register__slot__pounSlotNumberdwFunctionPointer$70da5b5d-fcb8-48d4-ac57-7c4cb04e2caa
3903245801__sys__unregister__slot__pou$9e4827e4-6b50-4e6a-bc7b-adeb6c4dd526
3363294660SysCpuDebugHandler$d6a84056-f4d9-45ca-9a49-a66cec23e145hide 242570791_Implicit_Application_InfoTypeRelativeInstance''NORMAL__COMMENT
rest of runtime info DO NOT USE !
pcArea : ARRAY [0..APPL_NUM_OF_STATIC_AREAS-1] OF POINTER TO BYTE //Pointer to data areas of this application
unsigned short ausAreaType[APPL_NUM_OF_STATIC_AREAS]; /* Area type */
unsigned long aulAreaSize[APPL_NUM_OF_STATIC_AREAS]; /* Area size */
unsigned char StaticSessionIdPool[MEM_GET_STATIC_LEN_(APPL_NUM_OF_STATIC_SESSIONIDS, sizeof(unsigned long))];
unsigned char StaticForcePool[MEM_GET_STATIC_LEN(APPL_STATIC_FORCE_ENTRIES, ForceVarDesc)];
unsigned char StaticBPPool[MEM_GET_STATIC_LEN(APP_STATIC_BP_ENTRIES, Breakpoint)];
pParentApplication8Local, Structure, IsCompiled, RelativeInstance, Typified pbyRightsguidCodeguidDataudState udOpStatedwDoNotUse_0dwDoNotUse_1dwDoNotUse_2dwDoNotUse_3dwDoNotUse_4dwDoNotUse_5dwDoNotUse_6bAppendBootprojectbPersistentForcedwPSVersiondwTargetSettingVersionFB_INIT
3526140261MethodbInitRetainsbInCopyCode__INSTANCEPOINTER4Input, IsCompiled, RelativeStack, Implicit, Typified
__Index__02Local, IsCompiled, RelativeStack, NoInit, Implicit'NonVirtual, Compiled, Typified, Located$ff589828-12c2-4e6a-9f0d-1d6dbb3264b6__FB_PARTIALINIT
15652336222NonVirtual, Generated, Compiled, Typified, Located?Structure, NonVirtual, Compiled, SuperGlobal, Typified, Located pack_mode8
1691734129int64__to__any32$e8c04d52-7d17-4965-9598-cb38a570750e
2445978047any32__to__int64$fbd44dd8-302c-4269-9682-4e63f10e32ee 716714719real32__to__any64$4996aebf-7b1a-4606-9275-58c6595fe093
3713006940any64__to__real32$fba8c26a-b719-4b40-ab2a-36a9440d345b
2394705132
int64__div$5df34150-5072-488a-a457-a82fe4dddcaf
1872403673uint64__div$c72c0ae2-f6fb-4752-9d81-65e25c2adedd 953205245
int64__mod$285230dc-fbd4-44eb-96d1-c35d9d1d95a4 593286487uint64__mod$7cf5a04d-a334-4d66-8458-aa41fd3d3cb4 113053312uint64__add$bd215293-9d5f-451b-8b34-fbf355380a1f
3531041404
int64__add$f853b3c3-030b-457f-9c6f-904c951d4c1b
4246887690
int64__sub$b74d723c-4571-496b-9991-776c19eac243 924210632uint64__sub$91c29cfe-4ed7-4aaf-862d-2b211eba3727
2220778925
int64__mul$56cf99a8-dd26-40fc-bd98-c75e222d12a2
2033230057uint64__mul$9f1b41e0-0777-4b76-9af1-a82c5e0d5e37
3251236970
int64__min$938d42a9-f6db-4a23-944c-1eb5ddb2deee
4061158343uint64__min$f38314a9-aaa0-47b1-8175-b88faad4b296
3984229475
int64__max$0d9bcbbc-7c0b-403c-afcc-ba79b0a580ab
3479610202uint64__max$611c06e1-6846-4ba2-82b4-76c65f121ab0
2541544546uint64__xor$367ed89a-2489-42df-ab7c-864d2f1d2f78 721305799uint64__and$c5a4df4a-a8a2-4c18-a05f-5857c4899a0c
2965688650
uint64__or$32a1c099-4e89-49fc-b341-847a90f50e30
2371146893uint64__not$b178ef7a-1592-434b-b462-6c46fac2c8a4
1107659532
uint64__eq$cea9db66-1a76-4c47-b9a0-6577ad6e4e74 480444143
uint64__ne$a5ae5f79-8207-4854-943b-288c0a7d2b9b
2021617967
uint64__lt$2c377459-e121-40b9-9e5a-1118a48f743d
1054973575
uint64__le$ae239119-6f5f-4534-a1ee-b390262a39a3
3255836883
uint64__gt$1450c7da-db41-485f-83a7-d6227fc55a01
2223951739
uint64__ge$20395126-4d3f-43d9-9df8-5b21c66b6dcb 863509285 int64__eq$e8ff23a5-d7c7-48b8-805a-b0c01e09cce3 881440595 int64__ne$18d11e8b-afdf-443e-82d2-046d71021018 238341524 int64__lt$35ead342-0197-4bd8-ba6f-d3002ea536e8
3414395280 int64__le$0a31942a-efba-4ddf-9c0d-7d4e887ec3ca 701077656 int64__gt$b93d8de7-8cc7-458d-b76b-54805d224bf8
3967736988 int64__ge$e3fa00fa-76dc-48d3-b18d-70546f8817d1
1867067789
int64__abs$83f47c43-8882-441b-809f-1bf3202ee267
3263826000uint64__rol$d9ff9b48-8cb1-41b0-92d2-319173b767fc
3062520787uint64__ror$8292f004-04fa-4067-bf44-2dd2c43db842
3322149652uint64__shl$4f5894be-5a41-4c9b-8659-e81c12575fc4
2986584215uint64__shr$821a527f-8831-4a09-b5da-58ca3b768f66
2726094904
uint64__limit$26311cc1-5920-4260-9336-be3754cf23cf
2206011875int64__limit$b3a15fa1-b9b4-4cad-91f6-3fd673edbae6
1272716029
int64__shr$427ca261-109e-4d61-a08b-24f6068e58da 655075154
get__ltime$aeaaf22a-a260-4bac-83d9-18ff949be644
3183966539real32__to__real64$9673b4f8-36d6-42ee-b5ca-e06e2602fab5
3519950284real64__to__real32$68d11de2-a882-4f63-8e95-577fbe97dbef
2972115768real64__to__any32$51322543-1fa0-4892-92ab-c1559ce724fa
2081721515any32__to__real64$48ba7277-d0f9-4a61-8d0a-cfa10c9598a2
3454954494
real64__trunc$78aea275-8aff-407b-981c-8abf25d34255
3137264130real64__tan$8ee3c317-6d75-4714-ab7c-ad187c5db2ee
3753412847real64__atan$79d8c72b-fe9c-4bd0-8d79-62e93b3d01b9 836685353real64__sin$df65bfb9-6613-453b-b2b8-4fcb3789d916 352719585real64__asin$dad7794c-0bfd-4662-adbc-f2c4e528d37b
3054655764real64__cos$22fbcf03-320c-4e2b-83ce-a942e5631489 546799055real64__acos$a11f5103-2691-4d71-bad3-db29bf365b4b
3328776656
real64__ln$1c3bb0cc-2170-475c-b9b2-2c991a82ed64 698653130real64__log$9335cd5c-acb1-4e96-ad18-0076459fc955
3678959237real64__exp$4ffba013-6cc1-43e2-b6bb-6715ab108128
3062998530real64__expt$fdfe2381-2e31-4926-b6d4-4cf674ac1326 942060455real64__sqrt$4ffd7525-5270-4695-b699-ddbbc4b96fd3
3310343244
real64__eq$475d8087-1c89-48a4-8923-1690f76c80fd
2615714223
real64__ne$7229c098-2c5d-434a-9ab4-f35ad2b92202
4281675375
real64__lt$5de9e5f2-dd5e-4a6e-b860-18fd191e23ee
3115041223
real64__le$7301d2cc-2aa1-4de3-9bef-548d89987e86
1163558803
real64__gt$38f386c3-7170-454b-8528-c10a39021b2363213627
real64__ge$f9510bc1-1227-49ab-9870-64870fd1a5fb 175120083real64__add$9dc891f0-020c-40ef-b8a7-99b35c1d6808
1004225947real64__sub$2fd9375a-655d-4573-bd00-1bcc1c494227
1979560122real64__mul$e2479120-cb69-43ba-87fa-98e33b5112c2
1666681994real64__div$a1c7ca2c-f191-46d4-a7f5-1504f1ba9eb8
1943489239real64__abs$99947bf9-0e45-48b1-ad7f-8efb60cecd95
4275915668real64__min$fb18f571-3f0d-4f1e-9a10-9bf219caed48
3282809609real64__max$7b55e231-072f-4e70-a3f9-b4b1a98c1c66
3952341867
real64__limit$b701090f-8dde-42e6-b8fe-5f22597768ee 960100917real64__to__any64$d8153915-f13d-4be5-963e-2e0db8de9f44
1431364689any64__to__real64$97dc91e6-edb3-4c35-be5d-6e444884a6ee
1535689152__sys__rts__cycle__2 hTaskinfo$1230b333-5d6b-46b8-a973-900b5373db72
1746117600exchange__and__add$a39e5468-86fa-4e6d-affe-3e2e51db2150
1630658070test__and__set$78879ef1-a378-4991-b06f-4f6324e3955f
1051002070compare__and__swappAddressxwExpectedValue
xwNewValue$84b9de1a-938d-454b-a526-1c5121467a99DoLink
2355386198 __memcopypDestpSrcdwSize$9d234cab-298b-4f80-8b06-238a4ecbdbf1
1888671637__stringcomparepStr1pStr2$9f5705df-d2f0-46b3-8c4d-6a4d6217fac6
2923953018__wstringcompare$0bea6546-230e-4059-a0c6-574c96c9dcc9
1251102159__cycle__code__PlcTask hTaskInfo&Generated, Compiled, Typified, Located$3d36549b-22ab-4d87-83c0-e64a83562690
2055098298IBase__UnionNone__InterfaceIBASE5Local, Structure, IsCompiled, RelativeInstance, Union__vfTablePointer?Local, Structure, IsCompiled, RelativeInstance, Union, Typified
1646999765!Output, IsCompiled, RelativeStack Input, IsCompiled, RelativeStackIBASE__UNION*Input, IsCompiled, RelativeStack, ImplicitNonVirtual, Compiled, Located$d66845db-6264-4814-8201-14e00ce3a97d\Structure, NonVirtual, Generated, Union, ImplicitInterfaceUnion, Compiled, Typified, Located!base interfaces, 3.5.2.0 (system)m4export_32bit_nosignature 124493086IoMgrConfigGetConnectorByDriverIOCONFIGCONNECTORIoConfigConnectorpIBaseIBase
bIecDrivernIndexpResultRTS_IEC_RESULT%External, Compiled, Typified, Located$06985b41-279f-4177-be30-df6637cf2a9biostandard, 3.5.15.0 (system)
1849640412IoMgrConfigGetConnectorListppConnectorListpnCount$328a63c3-d551-4b32-9422-377bc6aac35e
2797965735IoMgrConfigGetDriver
pConnectorpbIecDriver$af3d345a-c11f-478f-b5df-a99d8ebf08b6m4export_nosignature 120351857IoMgrCopyInputBEpChannelIOCONFIGCHANNELMAPIoConfigChannelMap$55d03518-4ee8-4b82-a8b3-766e40682994
3573238966IoMgrCopyInputLE$2c81bc43-6ab4-4b52-9f19-2965d9566ee8
3451368126IoMgrCopyOutputBE$7717607d-0e2d-4e6e-9262-8273e4cd68de
1606949052IoMgrCopyOutputLE$5bc7d463-6913-4718-8a12-5e49d1a76983
2201279776IoMgrGetBusCycleType$b68569cb-9baa-4ce2-a823-c8a751a0fb64
4163672564IoMgrGetConfigApplicationpszConfigApplicationpnMaxLen$b8648e29-04fc-41e1-a469-45f6d098f662
3960301101IoMgrGetDriverPropertieshIoDrvRTS_IEC_HANDLEppProperties$bff24870-39d9-48f3-9d34-114cbabbe751
2015607926IoMgrGetFirstDriverInstance$0e6f29bf-e5f9-4dc0-9040-46a430baf6fd 189232175IoMgrGetNextDriverInstance
pIBasePrev$2321c32b-bfa7-46fc-9f42-71436c2534da | Reconfigure a single connector respectively the corresponding master.
| In the reconfigure sequence we call the corresponding IO-driver at the connector the following way:
| 1. disable the IO-configuration
| 2. enable the IO-configuration
| 3. update the mapping
| This sequence is called asynchronously so the asynchronous state is transported in the parameter pudiState.
:return: The runtime system error code (see CmpErrors.library)
1931367312IoMgrReconfigure7 Pointer to the corresponding connector to reconfigure Asynchronous state of the reconfigure operation. Can be one of the the following states (see CmpAsyncMgr.library for details:
(ASYNCSTATE_INVALID | ASYNCSTATE_PENDING | ASYNCSTATE_ACTIVE | ASYNCSTATE_READY | ASYNCSTATE_ERROR | ASYNCSTATE_TIMEOUT) pudiState$912d5cf9-41b7-4ddc-870c-b8cb86c2711e
3203918504IoMgrRegisterConfigApplication$b2f4c643-c7e5-48a2-9923-7da06f28f56f
1108998563IoMgrRegisterInstance2 dwClassIdpItf$d0558e3e-16a7-4cff-b56f-4bf2bab8dca5
1618632085IoMgrSetDriverPropertiesulProperties$11359e5a-6c6f-4ab0-ad02-13f1415fc629
2473575876IoMgrSetDriverProperty
ulPropertybValue$0d12bb26-2b08-402c-9be4-7a3d1d749aac
3971059502 IoMgrUnregisterConfigApplication$85fc8796-00e3-4500-8f02-96be88b1acab
2198568135IoMgrUnregisterInstance
hInterface$5c4cac23-de3f-40ac-b8bc-1fcdb219c4c9
3870152214ConfigGetConnectorpIoConnectorListdwModuleType
dwInstancei*Local, IsCompiled, RelativeStack, TypifieddwCurrentInstance$05448d5a-856f-498f-8d2c-f54d4a1d2b4b
2183295846ConfigGetFirstChildpFathernCount$4ec186af-b262-48d5-b7fc-df5bbfcaba7d
2505514326ConfigGetFirstConnectorwType$f4b6faa7-ed59-4b86-ac5f-530a108dd065
1184247126ConfigGetNextChild$24eb7af1-4fea-45c3-9f69-1d59d8d37254 182680892ConfigGetNextConnector$0f720af6-4d60-4925-b3d9-aa0ac2cc321c
2127479105ConfigGetParameterIOCONFIGPARAMETERIoConfigParameterpIoConnector
dwParameterId$69449550-bc7e-40a6-a2d3-5b7f5d2fe50a
1690247643ConfigGetParameterLength
pParameter$15163bae-b543-4ae9-85e3-287c9d15f16122967866ConfigGetParameterValueBytewValuedwValue$a482a558-eb9a-4b9b-92ef-440028b1a32e
2864151311ConfigGetParameterValueDwordbyValue$04e9467c-951f-4e5c-95cf-4a9100c257c9
1732278298ConfigGetParameterValuePointer$a0bb9009-1f2c-4f47-9efd-e6f6d57f364b38318646ConfigGetParameterValueWord$2520e670-523b-47bc-a617-0cf6550b9c99''DOCU__COMMENT Mapping information for a single channel. Every I/O-channel is described as a parameter, but with special meanings. The datatype of a channel can be simple (BOOL, BYTE, WORD, etc.) or array of simple types.
1485173771& Pointer to the parameter description.? Pointer to the parameter in the process image on the IEC side.
pbyIecAddress Bitoffset of the device.wParameterBitOffset5 Bitoffset of pbyIecAddress in the IEC process image.wIecAddressBitOffset Size in bits of the channel.wSize This parameter is now used for the base type information. This information is needed for a correct swapping action. -- wBaseTypeInformation : WORD; -- compiler relies on the name 'wDummy' herewDummy= Driver specific entry. Reserved for the usage in the driver.dwDriverSpecificXWORD
3799954164$9993a70e-7153-4204-9a17-aa75207d5f4a2Structure, NonVirtual, Compiled, Typified, Locatedw Connector information. Each device is described completely as a set of one input- and one or more output-conenctors.
3076999907P Type of the connector. See category "Connector types" for detailed information.N Connector options. See category "Connector options" for detailed information.wOptionsJ Connector flags. See category "Connector flags" for detailed information.dwFlagsd Registered instance handle of the IO-driver, that operates this device respectively this connector., Number of parameters in the parameter list.dwNumOfParametersO Pointer to the parameter list, that contains all parameters of this connector.pParameterList= Pointer to the father connector to describe the device tree.
2550773687$7e08b7ae-f8e8-47d2-8a16-44662e62b8ce; Connector map to describe all IO-channels of one connector
2929473580IoConfigConnectorMap( Pointer to the corresponding connector. IO-manager specific entry.dwIoMgrSpecific, Number of channels in the channel map list.dwNumOfChannels Pointer to channel map list.pChannelMapList
3660353869IOCONFIGCONNECTORMAP$614b5eaf-fe26-4660-8316-12a2d58a3653T Parameter description. This entry describes completely a parameter of an connector. 837778035E ID of the parameter. This ID is specified in the device description.J Value (if is valud < 4 bytes) or a pointer to the value of the parameter.Q Type class of the parameter. See category "Type class" for detailed information.! Length of the parameter in bits.wLen Parameter value flags. See category "Parameter value flags" for detailed information. Bit 16 to 31 are used for extended parameters (size exceeding 65535 Bits,8192 Bytes)
3168140343$0c1f5741-c666-4ac4-8049-47e0d549144b# Mapping description for each task.
2318185417IoConfigTaskMap Index of the IEC task.dwTaskIdN Input or output type. See category "Task map types" for detailed information.5 Number of connector maps int the connector map list.wNumOfConnectorMap# Pointer to the connector map list.pConnectorMapList
3888132684IOCONFIGTASKMAP$1e2d8176-ccc8-45ec-9578-1060ca08f642
2962471661IoMgrConfigGetConnectorpConnectorList$12573be7-5a8e-4ae9-8d45-6c29427b520e
3097191027IoMgrConfigGetFirstChild$044f0bef-f59d-43ad-8496-90bb6703c2b5 451793610IoMgrConfigGetFirstConnector$2858dd16-f4fc-4483-bcdf-311c983114f4 797436920IoMgrConfigGetNextChild$e9fb4157-4aac-42be-ac94-2b7115a46f96
2780622961IoMgrConfigGetNextConnector$9eb80208-afcd-40cc-b7ef-e6ba0e5e4845
3349297925IoMgrConfigGetParameter$6d324e8a-97b5-4b18-a273-d5a249575d94
3729716360 IoMgrConfigGetParameterValueByte$7f0fa515-c756-4bdf-b369-2bc20d75cf4b
1871208306!IoMgrConfigGetParameterValueDword$edf4b27c-1558-4b38-8740-7733f1cd6224
1664861923#IoMgrConfigGetParameterValuePointer$c7e307ad-2f7f-41c3-a984-0cf8acc87b55
1378701427 IoMgrConfigGetParameterValueWord$534433e7-0f3d-4b97-9452-dcee4c3f5982
1801502966IoMgrConfigResetDiagnosis$883f4d8a-c225-480c-ab37-0adbd1349dfe
3771515593IoMgrConfigSetDiagnosis$a48fea34-3f67-4013-a0ba-98007fb1f0ff
m4export_hide
3966152356EVTPARAM_CmpIoMgr
2142005226EVTPARAM_CMPIOMGR$0c7ba0e4-3fb3-4e68-be6f-1f18acd66874
1571261114IoMgrGetModuleDiagnosis$0e3b12d3-3da9-4300-b32d-a55b095483d1
3297191157
IoMgrIdentify$8f29ce56-8080-4f31-921c-c80d1e131a4b This function acquires the mutual-exclusion locks for the given operations
for critical sections inside the I/O driver's implementation of IoDrvReadInputs(), IoDrvWriteOutputs(), and IoDrvStartBusCycle().
The locks can be released with the function ``IoMgrLockLeave()``.
While a lock is held, any other thread is blocked from acquiring the lock and waits until the lock is released.
IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms.
Platforms without synchronization functionality may not be able to implement this behavior.
IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts.
:return: error code
+ ERR_OK: Locks were successfully acquired.
+ ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter),
or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter).
+ ERR_FAILED: No driver entry for pbyIoDrv found in device pool. 890733340IoMgrLockEnterZ Handle to the driver instance which is returned by the function IoMgrRegisterInstance2().X The operations for which to acquire locks. See GVL LockScopes for detailed information.dwLockScope$4fd687bb-454e-46c6-92d3-30d2728a3718 This function releases the mutual-exclusion locks (that were acquired with the function ``IoMgrLockEnter()``) for the given operations.
IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms.
Platforms without synchronization functionality may not be able to implement this behavior.
IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts.
:return: error code
+ ERR_OK: Locks were successfully released.
+ ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter),
or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter).
+ ERR_FAILED: No driver entry for pbyIoDrv found in device pool.
1023158587IoMgrLockLeave\ The operations for which to release the locks. See GVL LockScopes for detailed information.$50cd89f4-1210-43ef-b6c6-2969fa64e786
1003358786IoMgrReadInputspTaskMap$d5fc4c8b-d7aa-4c58-861a-b02328639e3c
4078812334IoMgrScanModules$86e554e2-e3be-4617-a91e-b1c3df71e91f 166652967IoMgrStartBusCycle$4a65f552-4c1b-4aa4-92a4-4c8eb2dd5024 Start the bus cycle for a specific connector, and pass the type of this call as an additional option. This way, the driver knows in which conditions (see BusCycleType) was called, by calling IoMgrGetBusCycleType().
2327419416IoMgrStartBusCycle2$baa69047-4c1f-4c1a-b87c-8471ac7a7ad6
2973243251IoMgrUpdateConfiguration$8e8c1b49-af35-45e8-8dd6-4183dc7c1266
1154303272IoMgrUpdateConfiguration2$d75b572a-b27e-4240-94e8-0565f641933c 169153132IoMgrUpdateMappingpTaskMapList$f05cd498-57b1-4b93-bdc2-c8e263237f40
2002746541IoMgrUpdateMapping2$f51df010-35a8-4d39-b7ab-b84c2159ac76
2557345171IoMgrWatchdogTrigger$adc50bde-6417-4daf-91a3-310b13750941
3660854195IoMgrWriteOutputs$f3cda08a-24ef-4920-8b1f-737f86549f8b
3548116447IoMgrReadParameterpData dwBitSizedwBitOffset$0f6cb342-4622-47eb-8029-2ed7ce38f7e4
2902783976IoMgrWriteParameter$59947c7d-7697-4b40-a6f3-1458a495024c
2598087253$ConfigGetParameterValueByte_InternalpbyValueByte$ad79290f-4fb0-4668-a246-1230e7f20a89 743185784%ConfigGetParameterValueDword_InternalpdwValueDWord$1682af8a-160c-45a7-8955-5be9ff8acfb2
1882665782$ConfigGetParameterValueWord_InternalpwValueWord$d13aa643-3f97-483d-bb6d-577d824c73e4
3023225215private_iomgr_memcpypDstiSize$c3db5c9e-2306-4784-86d3-ddc840e503d2 450027817LogToDevicepMessage$87fa260a-0206-486b-b1c7-ddcd71ec0182Jbreakpoint logging functions, 3.5.5.0 (3s - smart software solutions gmbh) Appending of a string to a target string.
The string to append and the target have both
a maximum length of 255. If there is no more room in the target,
the remaining characters will be missing. There won't be an error.
.. cds:ranges::
:HEAD: |StringRange255|
:TAIL: |StringRange255|
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3222489690AppendToString& Head part of the concatenated result HEAD% Tail part of the concatenated resultTAILIntindex1indexRet$2534de7b-0ca5-4f62-a5ca-98671b8c49e2
linkalways
1647294876__DataSegmentsnNumOfSegments
pDataSegments
__SEGMENTINFO
__SegmentInfo
4060142437__DATASEGMENTS$6d5ee79a-0165-410b-9a03-2dcb86d77084
4207933064
1489859144displaymodehexdsKindOf__DATASEGMENTFLAGSuiAreaudOffsetudSizeudHighestUsedAddress 176517104$86a3bd70-f6af-446c-a3ca-d70c9d74cefb 224398676
3195237607__BasePropertyInfopVarAdr 930619704__BASEPROPERTYINFO$31ba9dec-acd8-475d-b624-39b6068c7eaf 461629027 236822733__PropertyInfoStructpGetterpSetter pInstance
4145388846__PROPERTYINFOSTRUCT$85b65d0b-a93f-4e02-80e4-fafd3f54abc3
1714484629
3751468166__POUInfoStruct dwCRCCodedwCRCInterfaceudiNameStringIndexusiAreaCodeLocationusiAreaFPPointerLocationudiOffsetCodeLocationudiOffsetFPPointerLocation 519335429__POUINFOSTRUCT$8467172f-0c66-4acf-9d6b-245b2445da14
2202995516
2428029082__FBInfoStructdwCRCVFTableudiAreaVFTableLocationudiOffsetVFTableLocation
1621815094__FBINFOSTRUCT$1964cd27-f960-4298-b539-cf555cb4552c
2130618155 901311032__MethodInfoStructudiParentPOUIndex
2699900021__METHODINFOSTRUCT$d277c0d4-0a58-4c92-97d1-0453f8828707
3731023454
2494911014__DUTInfoStruct
2398341060__DUTINFOSTRUCT$76a1e5d2-9eb5-4a1b-a8e7-baf1b7eb9716
1327871788
3489042165__GVLInfoStruct
1374809287__GVLINFOSTRUCT$a40cb7c8-28fe-4494-89ac-d9ba39db98a8
2456846774 994902498AnyTypepValuediSize TypeClass
TYPE_CLASS
3543456108ANYTYPE$b60a5c90-aa6c-4c3f-8332-c02981c0bf59 696726884
2125849342__CodeLocationStructudiCodeSize
2823972544__CODELOCATIONSTRUCT$bb81851c-8557-43fd-ad66-2f0071e45f53 802123132 147588528__ImplicitReferenceTypesInit$270c4366-521b-4273-856a-24cad42924c9
2353654990__TaskSpecificInfo TaskIndex pTaskInfo
2567373613__TASKSPECIFICINFO$5f3af15b-046d-4359-9fb1-4011c841ebb0
1278195045qualified_only 406642837__CheckedInterfaceAssignInterfaceInput
correction$09818148-288b-4e68-aaac-88d3699e851b
4255647081
__memcmp__iecptr1ptr2$0ac70c4a-9600-4218-ba11-7d8ad957fb05
4118428513any32__to__string
diExponentdwMantdiExp10pstrdiAfterKommaudPowdwTODdwDatepszHelp(Compiled, SuperGlobal, Typified, Located$52f276ac-71ea-475d-be1d-c34d7442869eF new and better way to convert single precision float values to string 812339439new__real32__to__string Area: 65535, Offset: 0x0 (0)indexpdwdwbSigndecexponentbinexponentbinmantissadecmantissastrMantissaRawstrMantissapstrMantissanLen
bFirstCharnNewExponentnPointPositionnIndexMantissaNewbNanbInfExponentbNegExponentnTensnOnes__CONVERSION_CONSTANTSFAdrPFBoolbContainsPointCHAR_0FLocal, ReplacedConstant, Constant, IsCompiled, RelativeStack, Typified
CHAR_POINT
CHAR_MINUSCHAR_E$a891eece-ca29-4db8-b9cf-c1a855c9feac
4263303623any64__to__stringdintHighudintLow udintHighLWordulDivulDigbFirstnDigitsnWidthcount$3cce6ca9-0c61-42bf-9945-73fd93e91f59 748513653real64__to__stringsz pszSource
pszHelpSourcepszDestDIntnSigniExp10nExpSignbSdiEliMxNanxInf$2a265c59-789e-4c94-a95e-f5f70529f084__GETINTERFACEPOINTER__GETINTERFACEREFERENCE__MAIN__VFINITCONFDYNLICCHALLENGEDEMOMODEEXPIREDDEMOMODESTARTEDFB_EXITGENERATEEXCEPTIONGETCODEMETERLICENSEVALUEGETDEMOLICENSEGETLICENSEVALUEGETLICENSEVALUEBITGETPURELICENSEVALUEGETUSERLICENSEVALUELICENSEMISSINGLOGERRORMESSAGEREADLICENSEFILEREQDYNLICCHALLENGESTORELICENSEUDINTVALUEOFLINEVALUEOFLINEhide_all_localsl This FB manages the access to license values.
There is one global instance of it with the name ``g_olm``.
1762817067OLM_OnlineLicenseManager
FunctionBlock_hFile-Local, IsCompiled, RelativeInstance, Typified
_udiTarget_udiType_udiCPU_udiOS_abyFileContentgc_uiMaxFileSize_uiFileSize
_xFileRead_uiStoredLicenses_udiDynLicReqID_udiDynLicReqValue_udiDynLicChallenge
_xDemoMessage
_semaStore_adwLicensesStoredgc_uiMaxStoredLic__VFTABLEPOINTER=Local, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy
3309119800OLM_ONLINELICENSEMANAGER
__Index__1$85fe17fb-708c-43f1-921d-b15ce3e6d622 726124912ReadLicenseFileresuxiSize udiTarget
udiTargetMASKudiTypeudiCPUudiOSpsSerialpdi
uiCheckSumabyGenbStringOnlineLicenseManagerstComponentstFilestrti$Compiled, Typified, Located, Private$245266f5-25c0-4347-ba16-cf8db3cb144883slicense, 3.5.14.0 (3s - smart software solutions gmbh) With this method a component that previously asked for a license and received a negative result can post an error log message in a unified way
Hence this method should be called after GetUserLicenseValue has been called and returned no license.
3647277004LicenseMissing name of the componentstrComponent$c917544e-997c-4a95-85b8-b296375d8bdb
3970679331UdintValueOfLinestrId$482e9fa5-988d-470b-a26c-e7f543b44f5f 699475816GetLicenseValueBitudiLicenseIDusiBit
udiLicense$0dd60a5f-bcb6-4ca9-bbbe-47aee3a7178a
2096955056fb_init$05fb8a48-e7b2-4a22-ad11-1fd89ee4b04e
1640385473GenerateException$3e4d0264-ac0c-4627-a2fa-6f413a9caafe
3646185970LogErrorMessage$35438eb1-a664-41a5-9c91-1c77ddde2b52w With this method a component can propagade in a uniform way that its demo mode has expired and it has stopped to work.
3922114547DemoModeExpired$e0a0ee36-9b29-4376-92d8-210830590cea
2895160340__GetInterfacePointer pRef
3063148035 fb_exit $fce63f6e-52d8-4464-9446-53dd8cc9eff7 167456217 GetPureLicenseValue
xNotFromCache
xFromCache udi udiCPUOS ui udiWibu $23227458-e40f-430b-b25c-630ba433fec3
4203605720 StoreLicense udiValue $3c47975d-1574-4342-8c3b-38c7e032490c This method allows to ask for the license value of a component (specified by udiLicenseID)
:return: Possible values:
+-------------+------------------------------------------------------+
| 0 | no valid license installed |
+-------------+------------------------------------------------------+
| 16#FFFFFFFF | demo mode (lasts for 30 min) |
+-------------+------------------------------------------------------+
| else | license value; interpretation depends on component |
+-------------+------------------------------------------------------+
1784112674 GetUserLicenseValue O ID of the component that asks for its license value (centrally assigned by 3S) $faf62368-1791-496f-9aac-1dcccaddbebb
1553897900 ConfDynLicChallenge udiNewLicenseValue udiChallenge udiLicenseValue $3c2f7c5c-8743-4910-b672-93d5c08a11db
4275231191 GetCodemeterLicenseValue udiProductCode $2fd2d7ac-965c-4a78-9a9b-c721a84cea62
1869023576 GetDemoLicense stHelp $3dea640c-ce74-46db-89a9-6a2e7e8a089c With this method a component can propagade in a uniform way that it is running in demo mode and will - after a certain time - stop.
This method should be called after it is clear that the license will stay in demo mode, in particular the (possibly later / after initialization phase) confirmation of dynamic licenses should be taken into account.
Therefore it is recommended for the OEM to confirm dynamic licenses *during the initialization* (after global init slot 40000) and *before the application* is started.
3669514694 DemoModeStarted $c9961dd4-2fb3-4d0b-9b3f-67937056004c
3864497688 __GetInterfaceReference nInterfaceId 4293952 GetLicenseValue param CMPEVENTMGR CmpEventMgr
EVENTPARAM
EventParam
eventparam EVENTIDS CmpMgr_LicenseRequest $d5b19f2e-90e0-4b05-a5e8-3068951f9d50
1280744906
3890662013 ValueOfLine pby uiEndOfLine j
usiBitOffs byOrig byPerm byBuff byOld
xEndOfLine $969097ae-9ac4-46e5-a05b-018cd3f16004 584426206 ReqDynLicChallenge udiTime $477a8134-64d2-4992-ac2b-50ed5f5a8858
1774802008 Alias, IsCompiled, Typified Alias, Compiled, Typified $1f187897-1eca-4745-9dd7-6e656076701f &systypes2 interfaces, 3.5.4.0 (system)
3827756189 $5de0d991-1359-4458-ba16-a7e779ed9ddc 565296024 8 EventID of the event. Contains the class and the event EventId Component ID of the provider.
CmpIdProvider 0 Id of the parameter structure (see pParameter) usParamId 5 Version of the parameter structure (see pParameter) usVersion R Pointer to the event specific parameter, that is specified by Id (see usParamId)
3380528868 $708ad4f5-2a48-4fd2-8d88-fb3b143a33a4 cmpeventmgr, 3.5.14.0 (system) 154268403 ulLicenseID ulLicenseValue
2430688636 CMPMGR_LICENSEREQUEST $ec71f5d5-b2a8-42f3-8e75-3a56c8942752 __OffsetI_TESTRESULTFORMATTER LOGTESTSUITERESULTS
1989740091 I_TestResultFormatter Interface 4590928 LogTestSuiteResults TestResults GVL_PARAM_CFUNIT GVL_Param_CfUnit MaxNumberOfTestSuites ST_TESTSUITERESULT ST_TestSuiteResult I_TESTRESULTFORMATTER $6ab3f0b5-21a7-4cd5-8126-d8af5506b662 $fa75ee61-43fb-4767-8061-125a3a9e3424 cfunit, 1.1.0.0 (open source) Compiled, Typified Detects a rising edge of a boolean signal
.. code-block:: codesys
(* Example declaration *)
RTRIGInst : R_TRIG ;
(* Example in ST *)
RTRIGInst(CLK := VarBOOL1);
VarBOOL2 := RTRIGInst.Q;
.. cds:ranges::
:CLK: [TRUE,FALSE]
:~CLK_OLD: [TRUE,FALSE]
:Q: [TRUE,FALSE]
754564685 R_TRIG Boolean signal to be checked CLK -Input, IsCompiled, RelativeInstance, Typified ``TRUE``: Rising edge detected Q .Output, IsCompiled, RelativeInstance, Typified M
3552750443 $752f4be3-bcd1-4b9f-8c29-de66d869ade4
2057466445
2279655128
725723096
2849467804
standard, 3.5.14.0 (system)
This function block reports the results from the tests using CmpLog functionality.
It sends the results into the DeviceLog (which can print Errors, Warnings and Messages).
4192911373
FB_CdsTestResultLogger
__INTERFACEPOINTER__376
PrintedTestSuiteResultNumber
UInt
PrintedTestSuiteTrigger
8 This flag is set once the final end result has printed
PrintedFinalTestResults
@ This flag is set once the test suites result have been printed
PrintedTestSuitesResults
1092721245
FB_CDSTESTRESULTLOGGER
$d14d6247-3ce3-459f-be22-6ee3520279ed
3006019631
StringToPrint
T_MAXSTRING
T_MaxString
TestsInTestSuiteCounter
MaxNumberOfTestsForEachTestSuite
NumberOfTestSuites
NumberOfTestCases
NumberOfSuccessfulTestCases
NumberOfFailedTestCases
#GeneralTestResultsTestSuitesCounter
$5da87d69-39f1-48e4-bedb-3bc6f1ecc539
1109025389
1863379842
2079809534
612864726
2899725525
I_TestResultFormatter__Union
1286751965
I_TESTRESULTFORMATTER__UNION
CLOSE
OPEN
READ
SAVE
1695361983
FB_FileControl
ACCESS_MODE
SYSFILE
SysFile
AM_WRITE_PLUS
FileAccessMode
FileHandle
SYSTYPES
SysTypes
2535989555
FB_FILECONTROL
$c9bec8fc-2de3-45f4-b839-e6c4276a6b5a
1889971345
2355446001
3308839526
Read
Call with ADR();
pString
Call with SIZEOF();
Size
FileSize
RTS_IEC_SIZE
$3984ae50-1cdb-4045-af99-0bb56917afb2
Closes the current file
4214760544
Close
$519e9011-283c-40b1-afd4-31686c5b81fe
2474451454
\ Saves the contents of the buffer into a file
Be sure to call Open() before calling Save()
2206094130
Save
Call with SIZEOF();
$c4146a99-50c6-4ce0-88ab-794dbfb1af62
Opens a file
2914156665
Open
p File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/)
filepath/output.xml
FileName
AM_APPEND_PLUS
$1873bb2c-c6a3-4681-8948-02aa2bad0a9b
527503827
__GETBUFFERSIZE
__GETLENGTH
__SETAPPEND
__SETLENGTH
__SETPREPEND
CLEAR
COPY
CUTOFF
FIND
FINDBACK
SET
M
This functionblock acts as a stream buffer for use with FB_XmlControl
460344340
FB_StreamBuffer
pStrBuf
udiBufSize
udiLength
property
set
Appends a string to the buffer
message_guid
$ddd7c0b6-46f9-4fa9-946e-0da608268245
Append
get
Read current Buffersize
$879a667c-416e-4879-91ff-6641233ded93
BufferSize
$80c3b0fb-2bdc-4829-89c6-017e171b31eb
Length
Prepends a string to the buffer
$c4fdd2db-7736-4bc5-a06f-ba3a29618794
Prepend
3894529336
CutOff
udiStartPos
udiCutLen
XmlError
E_XMLERROR
iLoop
pByteCut
pByteBuffer
FB_STREAMBUFFER
$8914e4f8-8b6c-48c3-ba1f-e0642038624a$fbccbed5-94ee-455b-a9d5-e8b750ed732e
Find a searchstring in the buffer and returns its position.
It's possible to add a preffered startposition within buffer
2249836283Find
sSearchStringudiLoopiSearchpBufferpSearch$7e38490a-9555-451d-957e-fef284a567e3
3770588605FindBack udiSearch$7d08b204-2078-4fde-81eb-e04d71986196
3443550296__setPrependTempBufGVL_PARAM_XMLCONTROLGVL_Param_XmlControlMaxFileSizepTempBufpByteIn$4ce6b49b-00bd-4bd1-9dcd-2e9ecfab167b
3531527356 679612793__getLength$063f44b5-d97e-4feb-bc58-4bdd7430c0c31
Copies a string from the character buffer
24631700CopyudiStartudiEnd
udiCopyLen pByteCopy$b796dd60-63f5-4b75-acc5-8fa40e24be46+ Clears the buffer and sets the length to 0 245412907Clear$5f0bbce2-2600-4a2e-8c6f-4b957ad03395
3105935666
1526185124__setLength$c516394c-e0bf-40e3-8a00-92e5ec5cc151
3911693793__getBufferSize$c7ad50d6-c68e-4f97-8e99-a8d5c013ef7a
2742528156 Sets the Buffer
2765814553Set Set buffer adress (ADR ...)pbyAdr Set buffer size (SIZEOF ...)udiSize$59092938-ca22-4896-8f54-1c854a0bd883
1070739256 431188798
3726327849__setAppend$2498d17a-6a8a-4bf1-a5ce-9c1a248a9710CLEARBUFFERCLOSETAG
NEWCOMMENTNEWPARAMETERNEWTAG
NEWTAGDATA
NEXTPARAMETERNEXTTAG SETBUFFER
TOSTARTBUFFERWRITEDOCUMENTHEADER
Organizes parsing and composing of XML data. Data can be treated as STRING or char array.
Filebuffersize is default 4096 bytes and can be set via Gvl_Param_XmlControl
Usage example:
1. Initiate
VAR
XML : FB_XMLControl;
Buffer: STRING(GVL_Param_XmlControl.udiMaxFileSize);
//or
Buffer: ARRAY [0..GVL_Param_XmlControl.udiMaxFileSize] OF BYTE;
END_VAR
XML.pBuffer: = ADR (buffer);
XML.LenBuffer: = SIZEOF (buffer);
Add your own preferred fileheader like so:
XML:
XML.WriteDocumentHeader( '');
2. Compose a tag with a parameters:
XML:
XML.newTag(sTagName: = 'MyTag');
XML.newPara(sName: = 'ParaName', sPara: = sValue);
XML.CloseTag();
3. Add tag value:
XML: MyText MyTag>
XML.newTag(sName := 'MyTag');
XML.newTagData(sTagData :='MyText');
XML.CloseTag();
4. Jump to the beginning of the XML data
XML.toStartBuffer();
5. Add a comment:
XML:
XML.newComment(sTagName: = 'MyComment');
6. Returns the next tag from the current position in buffer
XML.NextTag();
7. Output the parameter of the tag
XML.NextPara(sPara: = LastValue);
Feedback: sPara returns the value found (string)
4271593562
FB_XmlControlBufferTagListsTagsTagListSeek sTagsSeekTagsTagxTagOpeniSelectiSelectStart
iSelectEndiSelectStartParaiSelectEndParaiSelectTagCloseiSelectStartValueiSelectEndValueudiSearchPos<TAG_OPEN7Local, Constant, IsCompiled, RelativeInstance, Typified> TAG_CLOSE/>
END_TAG_CLOSE SPACE=EQUALS"QUOTE\
BACK_SLASH/
FORWARD_SLASH
CLOSE_COMMENT TAB
CR_LF$4fdf30b6-5fe7-4452-ad0a-85e866e236d0m
Must be called after opening a new tag
XML.NewParameter(Name: = 'ParaName', Value: = 'Value');
2634837430NewParameterNameValue
FB_XMLCONTROL$60c10606-ff09-4f9b-a3dd-0b54d0f565c7$f48b7de2-5c07-4763-a8be-3d8ab3c1f58c
2112014703I
Closes a Tag:
XML: '
Method: XML.CloseTag();
1350786801CloseTag$eedd2aac-2425-4325-8128-bfe1e984f3f7P
Creates a new Tag:
XML:
XML.NewTag(Name: = 'MyTag');
3405068434NewTag$c44bdbda-725a-4943-a5cc-fa5ea9485541
2345788106
4091577810NextTag$d039b781-905d-4b69-b5aa-bb0323e598de 311623939
NextParameter Parameter$4394d0a2-f7bc-4847-9625-00022c462a79
Add your own preffered fileheader like:
XML:
XML.WriteDocumentHeader('');
1129208895WriteDocumentHeaderHeader$14bf2549-9e7d-451f-8ab5-fe662eb30712c
Adds a comment;
XML:
XML.NewComment(Comment: = 'MyComment');
1839979298
NewCommentComment$0f41fa45-b92e-4e7e-b2b3-ecb5d5918326
1660387904$267105d4-b124-4c5c-a359-0434c4992afc
3578040079
3559116989 629852686
NewTagDataData$e4679d3f-10eb-47fd-936c-97e3aaaa3768
3231874346 SetBufferiSizeOf$cbfaa6d5-eab9-48d0-a339-a8bf334e344e1
Clears the contents of the entire buffer
1859166792ClearBuffer$651b4460-232e-47e8-95ba-ecea1541fbb9G
Jump to the beginning of the XML data
XML.ToStartBuffer();
480465930
ToStartBuffer$cb065068-a6c8-48d5-8c1d-535a21365348 792755172
OPENSAVECLOSEx
This function block reports the results from the tests into a xUnit compatible XmlFile
see xUnit XML Template
886807295FB_XmlResultFormatter* Default path for storing the output file ./output.xml
szFilename Default file access mode stFileAccessModeFileXml
FB_XMLControlxBufferInitialisedMinusWritingTestSuiteResultNumberAreAllTestsFinishedTriggerWritingFinalTestResults@ This flag is set once the test suites result have been written ReadyWritingTestSuitesResults 797895307FB_XMLRESULTFORMATTER$6597c0b3-0890-4d5d-8d3a-2d0d0b2355db
3982966825NumberOfSkippedTestsCurTestSuite$32c3ccd7-3470-4554-b54c-b3a0a6491553
3964891648
1911703512 173356519
OpenSaveClose$84256533-6eb5-465b-b1e5-db6f61e2e6c3
3684701766FB_Init is always available implicitly and it is used primarily for initialization.
The return value is not evaluated. For a specific influence, you can also declare the
methods explicitly and provide additional code there with the standard initialization
code. You can evaluate the return value.
1205183587FB_InitE TRUE: the retain variables are initialized (reset warm / reset cold)P TRUE: the instance will be copied to the copy code afterward (online change) $0f23c47b-7245-415e-b489-0ae429217263
3984686499ST_TestCaseResultTestName
TestClassNameSkipped
2862998697ST_TESTCASERESULT$827f1374-79d7-484a-b090-e913f2fd7e61
3654019189 Full class nameW Should be 0..GVL_Param_TcUnit.MaxNumberOfTestSuites-1 but gives unknown compiler errorIdentity
NumberOfTestsNumberOfFailedTestsTestCaseResults
2727633817$5d16604c-bc9e-413c-8d4d-01667ea07b24GETGENERALTESTRESULTSGETTESTSUITERESULTS^ This function block holds results of the complete test run, i.e. results for all test suites
3609055345FB_TestResults The total number of test suites5 The total number of test cases (for all test suites)? The total number of test cases that had all ASSERTS successfulC The total number of test cases that had at least one ASSERT failed. Test results for each individiual test suite TestSuiteResults Misc variables StoringTestSuiteResultNumberStoringTestSuiteTriggerStoredTestSuiteResultsStoredGeneralTestResults
2772295229
TestSuiteNameTestToBeStoredFB_TESTFB_TestFB_TESTRESULTS$dcfade2b-3801-4064-9466-67a7a848e8d0
3733259722
2712372026GetGeneralTestResultsNoOfTestSuites
NoOfTestCases
NoOfSuccessfulTestCases
NoOfFailedTestCases
$531d5d08-5de3-4c4f-9365-451e69239140
3328074054
GetTestSuiteResults
$3d7cfdb1-16a3-456d-be0a-82cecf4820a8
2050565673
1157713369
565388467
ABORTRUNNINGTESTSUITETESTS
RUNTESTSUITETESTS
]
This function block is responsible for holding track of the tests and executing them.
4236016373
FB_CfUnitRunner
L Indication of whether all test suites have reported that they are finished
AllTestSuitesFinished
3 Prints the results to Log to display the results.
LogTestResultFormatter
TestResultPrinter
XmlTestResultFormatter
XmlPublisher
Test result information
w If this flag is set, it means that some external event triggered the
request to abort running the test suites
AbortRunningTestSuites
1585667064
FB_CFUNITRUNNER
$857e16d6-a26c-468a-935e-aa7317c263b9
2542736242
2449661844
` This function sets a flag which makes the runner stop running the tests
in the test suites
573665699
AbortRunningTestSuiteTests
$3fcbd569-749a-493c-a697-2c976fa6e96a
2950497563
2121166836
2836251582
RunTestSuiteTests
Counter
BusyPrinting
We need to hold a temporary state of the statistics (failed, successful, total amount of test cases etc)
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
NumberOfTestSuitesFinished_Temp
NumberOfTestCases_Temp
NumberOfFailedTestCases_Temp
NumberOfSuccessfulTestCases_Temp
$d333e6c4-a1da-4b5b-91b3-4b4808e6c299
2671643726
$a429e267-db3b-4872-871e-1ca509b971e2
161063444
$fc07005b-6ac8-404d-b2cd-f68d25f42f8e
GETNAME
ISFAILED
ISFINISHED
SETFAILED
SETFINISHED
SETNAME
?
This function block holds all data that defines a test.
929400243
C Indication of whether this test has had at least one failed assert
TestIsFailed
TestIsFinished
1117055996
IsFinished
$813a9067-b864-4739-9c14-830160e0eabc
$a51e9086-33ec-4162-acad-93a76961e893
2617315923
2860593324
4294720336
2009680975
686902952
SetName
$4c12f6eb-bbe4-4872-ac89-4411e2e81414
1394032034
SetFailed
$b840b41b-4045-4fd9-b97d-0bf226c46fb3
340246040
IsFailed
$e42409e3-251f-4133-8b14-3630785983d6
486247262
2121735863
GetName
$94757f0e-9979-49d0-ad9f-e35c823175d4
2325423616
SetFinished
$e1245d1c-be22-4d60-bc91-fe0262827234
external_name
Task_Info
Task information out of the task configuration
Task configuration menbers which are used with |IecTaskCreate| are marked with [c], status members are marked with [s].
Note for SIL2: This information is already inside of the data area, so we don't need to tag it as safe anywhere.
61652668
Task_Info2
! [c] Version of the structure (2)
dwVersion
[c] Name of the task, mandatory
pszName
% [c] IEC priority of the task (0..31)
nPriority
9 [c] Kind of task. See corresponding category |TaskType|.
KindOfTask
$ [c] Is TRUE, if watchdog is enabled
bWatchdog
C [c] Is TRUE, if profiling is enabled (not used, FALSE recommended)
bProfiling
E [c] Function pointer to the event check routine, see |IecTaskCreate|
dwEventFunctionPointer
7 [c] Name of the event, if it is an external event task
pszExternalEvent
F [c] Function pointer to the task code, mandatory, see |IecTaskCreate|
dwTaskEntryFunctionPointer
[c] Watchdog sensitivity
dwWatchdogSensitivity
[c] Interval in microseconds
dwInterval
" [c] Watchdog time in microseconds
dwWatchdogTime
5 [s] Cycle time in microseconds (last execution time)
dwCycleTime
' [s] Average cycle time in microseconds
dwAverageCycleTime
' [s] Maximum cycle time in microseconds
dwMaxCycleTime
' [s] Minumum cycle time in microseconds
dwMinCycleTime
[s] Jitter in microseconds
iJitter
[s] Minimal jitter
iJitterMin
[s] Maximal jitter
iJitterMax
[s] Cycle counterdwCycleCount( [s] Task state. See category TaskState.iState3 [s] Number jitter statistical distribution entrieswNumOfJitterDistributions, [s] Statistical jitter distribution entriespJitterDistributionJITTER_DISTRIBUTIONJitter_Distribution [s] Timeslicing enabledbTimeSlicingbyDummy- [s] Cycle counter for execution of user codedwIECCycleCount
2750948561
TASK_INFO2$a1e9fbd6-93bf-46b3-bfe6-3b3118b8971acmpiectask, 3.5.14.0 (system)) reads the taskinfo from the current task 380229896GetCurTaskInfopCurTask
CMPIECTASK
CmpIecTaskpCurTaskInfoCurTaskInfo
4105761433GETCURTASKINFO$21adb24c-373e-4435-8059-bba210563e99
2413748294
1915908239
4214002233
2906446323 227646264U_ExpectedOrActualboolExpectedOrActualbitExpectedOrActualbyteExpectedOrActualdwordExpectedOrActuallwordExpectedOrActualstringExpectedOrActualudintExpectedOrActualuintExpectedOrActualusintExpectedOrActualsintExpectedOrActualintExpectedOrActualwordExpectedOrActualdintExpectedOrActuallintExpectedOrActualulintExpectedOrActualrealExpectedOrActuallrealExpectedOrActualwstringExpectedOrActualtimeExpectedOrActualltimeExpectedOrActualdateExpectedOrActualdateandtimeExpectedOrActualtimeofdayExpectedOrActual25436326U_EXPECTEDORACTUAL$539c30a7-a560-469c-8422-aaf8c09f45d99Structure, NonVirtual, Union, Compiled, Typified, Located
2825047456ST_AssertResultExpectedActualMessageTestInstancePath
1612349127ST_ASSERTRESULT$63e20a3e-c451-4aff-a3c2-cc9b3a584290
1583981908ST_AssertResultInstancesAssertResult* Amount of instances of the "AssertResult"DetectionCountD Amount of instance of the "AssertResult" in this specific PLC-cycleDetectionCountThisCycle93536004ST_ASSERTRESULTINSTANCES$018c91ab-7038-42ef-b6e4-5007ea06204fADDASSERTRESULT3COPYDETECTIONCOUNTANDRESETDETECTIONCOUNTINTHISCYCLECREATEASSERTRESULTINSTANCEGETDETECTIONCOUNTGETDETECTIONCOUNTTHISCYCLE$INCREASEDETECTIONCOUNTTHISCYCLEBYONEREPORTRESULT
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).
An instance of an assert is keyed/identified with the following parameters as key:
- Value of expected
- Value of actual
- Message (string)
- Test instance path (string)
2083454144FB_AssertResultStatic> The total number of instances of each of the "AssertResults"
AssertResultsMaxNumberOfAsserts$ The total number of unique asserts TotalAsserts. Function block to get the current task cycle GetCurrentTaskIndexAssertResultInstances The last PLC cycle count
CycleCount Only run first cycle FirstCycleExecuted
1249903082FB_ASSERTRESULTSTATIC$9683a633-879e-475e-a97f-0742f9ecfd04 692841312
1389387818
23729146033CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounter$a8cc95e0-191e-40c8-a6bc-8d58d9231bfa
hasanytype 324331413$IncreaseDetectionCountThisCycleByOneuselocationExpected.pValueExpected__pValue2Local, IsCompiled, RelativeStack, NoInit, TypifiedExpected.TypeClassExpected__typeClassExpected.diSizeExpected__sizeOfanytypeclassANY
Actual.pValueActual__pValueActual.TypeClassActual__typeClass
Actual.diSizeActual__sizeOf$b4a5f59b-b092-46e9-a592-20ecca6c06c9
1534235042
1576367466 875312424CreateAssertResultInstance$0e48fb23-038c-40ed-90ff-ee834be2653d
4040583768GetDetectionCountThisCycle$9f89a925-0785-44b9-83cb-36f87d5bc546
1863076118GetDetectionCount$75f01348-487a-4441-a0e3-f41feb6c1781
This method is called in every assert and returns whether this particular assert has already been called.
The reason one would like to know whether this assert has already been reported or not is to not report it several
times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the
test to run over several cycles it means that certain asserts could be called several times and thus we need to
keep track of which asserts we've already reported. The user of the framework should not need to care for any of
this and he/she should be able to call the asserts in any way they FIND suitable.
To know what assert this is we need to check for the total combination of:
- Test message
- Test instance path
- Expected value
- Actual value
Theoretically we can have a situation where a test has three different asserts, each and one with the same test
message/test instance path/actual value/expected value but called within the same or different cycles. In order for
us to handle all situations we need a simple algorithm that works according to:
- Keep track of how many instances the combination of test message/test instance path/expected value/actual value
we have. So for example, if we have called Assert(Exp := 5, Act := 5, 'Hello there', 'PRG.InstanceTestSuite.Test')
two times in one cycle, we have two instances of that combination. This is done according to:
- Iterate all existing reports.
- If we have a new PLC-cycle, set the current detection-count to zero.
- If new report does not match in any of the above fields, create it (together with current PLC-cycle).
Also store the information that we have one instance of this combination and +1 on the detection-count.
- If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than
the stored detection-count for this combination, create a new report and add +1 to the storage of
the detection-count.
2144796275ReportResultAlreadyReported
LocationIndexDataTypesNotEqualsDataSizeNotEqualsDataContentNotEqualsCurrentCycleCountDetectionCountTempFoundOneAdditionalIdenticalAssert$675e4dfe-54f1-4dc0-a6fd-481bc63973c5
3239381763AddAssertResult$22afb213-95b2-4bfd-ada6-e7cf020d9c1d
3525697315ST_AssertArrayResult% Size in bytes of the expecteds-array
ExpectedsSize% The data type of the expecteds-arrayExpectedsTypeClass TYPECLASS# Size in bytes of the actuals-arrayActualsSize# The data type of the actuals-arrayActualsTypeClass
2307666740ST_ASSERTARRAYRESULT$a97be192-7eab-4934-bf94-f1c1e71902f6
1707683493ST_AssertArrayResultInstancesAssertArrayResult/ Amount of instances of the "AssertArrayResult"I Amount of instance of the "AssertArrayResult" in this specific PLC-cycle
2861258322ST_ASSERTARRAYRESULTINSTANCES$32c33d09-e3c1-4756-8559-edad569b31f5ADDASSERTARRAYRESULT
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
(if the assert fails). An instance of an array-assert is keyed/identified with the following parameters as key:
- Array-size (in bytes) of the expecteds
- Datatype of the expecteds
- Array-size (in bytes) of the actuals
- Datatype of the actuals
- Message (string)
- Test instance path (string)
285741936FB_AssertArrayResultStaticC The total amount of instances of each of the "AssertArrayResults" AssertArrayResults$ The total amount of unique asserts TotalArrayAssertsAssertArrayResultInstances
3879263428FB_ASSERTARRAYRESULTSTATIC$b20832df-51fb-47f1-8077-6f683834a939
4126057407
2905686437
4129591207$a7fb8083-d80a-4b1b-8816-a954d21029f6
4220474593
2080793920
2799846253$f9a4ac71-1920-4a28-b414-2ab956ba44ba
2199397778$a67f455d-9f04-4265-a3ae-ec73cfedab30
1425005247$da11a180-ba29-4114-ba12-6fb4c00ea850
This method is called in every assert and returns whether this particular assert has already been called.
The reason one would like to know whether this assert has already been reported or not is to not report it several
times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the
test to run over several cycles it means that certain asserts could be called several times and thus we need to
keep track of which asserts we've already reported. The user of the framework should not need to care for any of
this and he/she should be able to call the asserts in any way they FIND suitable.
To know what assert this is we need to check for the total combination of:
- Test message
- Test instance path
- Expecteds size (in bytes)
- Actuals size (in bytes)
- Expecteds datatype
- Actuals datatype
Theoretically we can have a situation where a test has three different asserts, each and one with the same test
message/test instance path/actuals size&datatype/expecteds size&datatype but called within the same or different
cycles. In order for us to handle all situations we need a simple algorithm that works according to:
- Keep track of how many instances the combination of test message/test instance path/expecteds size&datatype/
actuals size&datatype we have. So for example, if we have called
Assert(Exp := [5,4,3], Act := [5,4,3], 'Hello there', 'PRG.InstanceTestSuite.Test')
two times in one cycle, we have two instances of that combination. This is done according to:
- Iterate all existing reports.
- If we have a new PLC-cycle, set the current detection-count to zero.
- If new report does not match in any of the above fields, create it (together with current PLC-cycle).
Also store the information that we have one instance of this combination and +1 on the detection-count.
- If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than
the stored detection-count for this combination, create a new report and add +1 to the storage of
the detection-count.
334711663$9acdaaa9-94c5-4747-8072-7b7279f5cd81
2602585500$909102be-4739-47e1-abb5-2b1a0d9602c4
1114810495AddAssertArrayResult$60d61a50-adb0-4323-b700-3d64bcdd7ef0 __OffsetI_ASSERTMESSAGEFORMATTERLOGASSERTFAILURE 355528328I_AssertMessageFormatter
4291550583LogAssertFailureI_ASSERTMESSAGEFORMATTER$35efab01-6ac8-46a5-a5e1-adb4f1f5f9b2$71246e7e-3534-44b1-a788-c1f37427a096
This function block is responsible for printing the results of the assertions using the built-in
LOGSTR functionality provided in this library. This sends the result to the DeviceLog.
856032233FB_LogAssertMessageFormatter__INTERFACEPOINTER__652
3082900915FB_LOGASSERTMESSAGEFORMATTER$54911d7d-b4a4-43a8-a981-a2fc14a13f71
1702637047
3821178837 498102394
2988799914,AdjustAssertFailureMessageToMax252CharLength/FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTH/FB_AdjustAssertFailureMessageToMax252CharLengthTestInstancePathCleanedTestInstancePathFinalReturnValueTestInstancePathProcessedMessageProcessed$48cbc6b0-5380-44b8-a045-57b6ad9f189d
4086985287 694510288I_AssertMessageFormatter__Union
1092183428I_ASSERTMESSAGEFORMATTER__UNIONADDTESTADDTESTNAMETOINSTANCEPATHAREALLTESTSFINISHEDASSERTARRAY2DEQUALS_LREALASSERTARRAY2DEQUALS_REALASSERTARRAY3DEQUALS_LREALASSERTARRAY3DEQUALS_REALASSERTARRAYEQUALS_BOOLASSERTARRAYEQUALS_BYTEASSERTARRAYEQUALS_DINTASSERTARRAYEQUALS_DWORDASSERTARRAYEQUALS_INTASSERTARRAYEQUALS_LINTASSERTARRAYEQUALS_LREALASSERTARRAYEQUALS_LWORDASSERTARRAYEQUALS_REALASSERTARRAYEQUALS_SINTASSERTARRAYEQUALS_UDINTASSERTARRAYEQUALS_UINTASSERTARRAYEQUALS_ULINTASSERTARRAYEQUALS_USINTASSERTARRAYEQUALS_WORDASSERTEQUALSASSERTEQUALS_BOOLASSERTEQUALS_BYTEASSERTEQUALS_DATEASSERTEQUALS_DATE_AND_TIMEASSERTEQUALS_DINTASSERTEQUALS_DWORDASSERTEQUALS_INTASSERTEQUALS_LINTASSERTEQUALS_LREALASSERTEQUALS_LTIMEASSERTEQUALS_LWORDASSERTEQUALS_REALASSERTEQUALS_SINTASSERTEQUALS_STRINGASSERTEQUALS_TIMEASSERTEQUALS_TIME_OF_DAYASSERTEQUALS_UDINTASSERTEQUALS_UINTASSERTEQUALS_ULINTASSERTEQUALS_USINTASSERTEQUALS_WORDASSERTFALSE
ASSERTTRUEFINDTESTSUITEINSTANCEPATHGETINSTANCEPATHGETNUMBEROFFAILEDTESTSGETNUMBEROFSUCCESSFULTESTSGETNUMBEROFTESTSGETTESTBYPOSITIONISTESTFINISHED
SETTESTFAILEDSETTESTFINISHEDcall_after_init
reflection
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.
1004086117FB_TestSuite
instance-pathnoinitInstancePath5Local, IsCompiled, RelativeInstance, NoInit, Typified 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 Tests Rising trigger of whether we have already notified the user of that the test name pointed to by the current
position is a duplicate TestDuplicateNameTrigger Last cycle count index for a specific test. Used to detect whether this test has already been defined in the
current test suite TestCycleCountIndex Prints the failed asserts to DeviceLog to display the assert message. This assert formatter can be replaced with something else than the DeviceLog LogAssertMessageFormatterAssertMessageFormatter | Asserts that two REALs are equal TO within a positive delta. IF they are NOT, an assertion error is created.
Parameters:
| Expected – REAL expected value
| Actual – REAL actual value
| Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : REAL := 1234.5;
b : REAL := 1234.4;
END_VAR
TEST('Test_REAL_Equals');
AssertEquals_REAL(Expected := a,
Actual := b,
Delta := 0.1,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
VAR
a : REAL := 1234.5;
b : REAL := 1234.4;
END_VAR
TEST('Test_REAL_Differ');
AssertEquals_REAL(Expected := a,
Actual := b,
Delta := 0.05,
Message := 'Values differ');
TEST_FINISHED();
3935931743AssertArrayEquals_REAL REAL array with expected valuesvariable_length_array
Dimensions1 Expecteds REAL array with actual valuesActuals 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 cellDelta0 The identifying message for the assertion errorEquals
SizeEqualsIndexExpectedStringActualStringSizeOfExpecteds
SizeOfActualsExpectedsIndexActualsIndeximplicit_inputExpecteds__Array__Info__ARRAY__DIM__INFOActuals__Array__InfoFB_TESTSUITE$c42ec40e-0859-4258-a3b2-11b258dab324$f80c23f2-119d-406b-ae11-06d1991bf64d | Asserts that two BOOLs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – BOOL expected value
| Actual – BOOL actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : BOOL := TRUE;
b : BOOL := TRUE;
END_VAR
TEST('Test_BOOL_Equals');
AssertEquals_BOOL(Expected := a,
Actual := b,
Message := 'Bools differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : BOOL := TRUE;
b : BOOL := FALSE;
END_VAR
TEST('Test_BOOL_Differ');
AssertEquals_BOOL(Expected := a,
Actual := b,
Message := 'Bools differ');
TEST_FINISHED();
1285440394AssertEquals_BOOL BOOL expected value BOOL actual value$0c41b405-ea35-4450-93cc-7c3349bdf754
| Asserts that two WORD arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – WORD array with expected values
| Actuals – WORD array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE];
b : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE];
END_VAR
TEST('Test_WORD_Array_Equals');
AssertArrayEquals_WORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[1..5] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB];
b : ARRAY[1..7] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB, 16#FFFF, 16#1122];
END_VAR
TEST('Test_WORD_Array_DifferInSize');
AssertArrayEquals_WORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1133];
b : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1122];
END_VAR
TEST('Test_WORD_Array_DifferInContent');
AssertArrayEquals_WORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
2226873030AssertArrayEquals_WORD WORD array with expected values WORD array with actual valuesExpectedDWordStringActualDWordString$16eada18-ce2b-459d-a8d9-277e84766935 | Asserts that two STRINGs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – STRING expected value
| Actual – STRING actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : STRING := 'Hello there';
b : STRING := 'Hello there';
END_VAR
TEST('Test_STRING_Equals');
AssertEquals_STRING(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : STRING := 'This is a string';
b : STRING := 'This is another string';
END_VAR
TEST('Test_STRING_Differ');
AssertEquals_STRING(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 696659643AssertEquals_STRING STRING expected value STRING actual value$cad7fed3-5db3-4371-9240-856c3c740489 | Asserts that two ULINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – ULINT expected value
| Actual – ULINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ULINT := 45683838383;
b : ULINT := 45683838383;
END_VAR
TEST('Test_ULINT_Equals');
AssertEquals_ULINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : ULINT := 10000;
b : ULINT := 53685437234;
END_VAR
TEST('Test_ULINT_Differ');
AssertEquals_ULINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
1081954271AssertEquals_ULINT ULINT expected value ULINT actual value$6f1e7566-33c3-4f9c-b92d-7828feb26211 | Asserts that two USINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – USINT array with expected values
| Actuals – USINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[0..100] OF USINT := [42, 100(33)];
b : ARRAY[0..100] OF USINT := [42, 100(33)];
END_VAR
TEST('Test_USINT_Array_Equals');
AssertArrayEquals_USINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[0..100] OF USINT := [101(42)];
b : ARRAY[0..70] OF USINT := [71(42)];
END_VAR
TEST('Test_USINT_Array_DifferInSize');
AssertArrayEquals_USINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..10] OF USINT := [0,1,2,3,6(4),5];
b : ARRAY[0..10] OF USINT := [0,1,2,3,6(5),6];
END_VAR
TEST('Test_USINT_Array_DifferInContent');
AssertArrayEquals_USINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 887618224AssertArrayEquals_USINT! USINT array with expected values USINT array with actual values$b3215098-2f26-48bf-a7e4-ee1a0803a968
3215331727GetNumberOfSuccessfulTests$635213dc-96ca-4be6-9c0d-c0454c29d34d | Asserts that two BYTE arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – BYTE array with expected values
| Actuals – BYTE array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E];
b : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E];
END_VAR
TEST('Test_BYTE_Array_Equals');
AssertArrayEquals_BYTE(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[1..2] OF BYTE := [16#AB, 16#CD];
b : ARRAY[1..5] OF BYTE := [16#AB, 16#CD, 16#EF, 16#01, 16#23];
END_VAR
TEST('Test_BYTE_Array_DiffersInSize');
AssertArrayEquals_BYTE(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..3] OF BYTE := [16#AB, 16#AA, 16#BB, 16#89];
b : ARRAY[0..3] OF BYTE := [16#AB, 16#CD, 16#BB, 16#89];
END_VAR
TEST('Test_BYTE_Array_DiffersInContent');
AssertArrayEquals_BYTE(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 843385749AssertArrayEquals_BYTE BYTE array with expected values BYTE array with actual valuesExpectedByteStringActualByteString$375a5287-a3e9-4833-ac17-bab8f3f0fdc9
2859496217
SetTestFailed$3adab5a4-e3e4-4dd7-8096-bf6ad3b874d9 | Asserts that two WORDs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – WORD expected value
| Actual – WORD actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : WORD := 16#ABCD;
b : WORD := 16#ABCD;
END_VAR
TEST('Test_WORD_Equals');
AssertEquals_WORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : WORD := 16#EF01;
b : WORD := 16#2345;
END_VAR
TEST('Test_WORD_Differ');
AssertEquals_WORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
1389270635AssertEquals_WORD WORD expected value WORD actual value$85132cdb-0553-4070-be9a-976fcddd873d | Asserts that two ULINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – ULINT array with expected values
| Actuals – ULINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000];
b : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000];
END_VAR
TEST('Test_ULINT_Array_Equals');
AssertArrayEquals_ULINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[0..1] OF ULINT := [0, 9_400_000_000_000];
b : ARRAY[0..0] OF ULINT := [0];
END_VAR
TEST('Test_ULINT_Array_DifferInSize');
AssertArrayEquals_ULINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 9_400_000_000_000];
b : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 18_446_744_073_709_551_615];
END_VAR
TEST('Test_ULINT_Array_DifferInContent');
AssertArrayEquals_ULINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
3439473642AssertArrayEquals_ULINT! ULINT array with expected values ULINT array with actual values$916529a0-57b3-4947-a5b8-e7b9ff17f35f
4055043037IsTestFinished$1ef139e2-1210-4139-ba5c-329f8493b09c | Asserts that two LINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – LINT expected value
| Actual – LINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : LINT := -123456789;
b : LINT := -123456789;
END_VAR
TEST('Test_LINT_Equals');
AssertEquals_LINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : LINT := -451416345;
b : LINT := 589532453;
END_VAR
TEST('Test_LINT_Differ');
AssertEquals_LINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();9335976AssertEquals_LINT LINT expected value LINT actual value$9dc34017-cbc7-41a9-83a2-941f39cc7271 | Asserts that two objects (of any type) are equal. If they are not, an assertion error is created.
| For REAL and LREAL it’s recommended to use the AssertEquals_REAL or AssertEquals_LREAL respectively
| as these give the possibility to specify a delta between the expected and actual value.
Parameters:
| Expected – Expected value
| Actual – Actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : INT := 5;
b : INT := 5;
END_VAR
TEST('Test_ANY_Equals');
AssertEquals(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : INT := 5;
b : UINT := 5;
END_VAR
TEST('Test_ANY_Differ_DataType');
AssertEquals(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
2024349150AssertEquals Expected value$ The value to check against expectedCountExpectedDataStringActualDataString
AnyComparatorFB_ANYCOMPARATORFB_AnyComparatorboolExpected
boolActualbyteExpected
byteActualdateExpected
dateActualdateAndTimeExpecteddateAndTimeActualdintExpected
dintActual
dwordExpecteddwordActualintExpected intActuallintExpected
lintActual
lrealExpectedlrealActual
ltimeExpectedltimeActual
lwordExpectedlwordActualrealExpected
realActualsintExpected
sintActualstringExpectedstringActualtimeExpected
timeActualtimeOfDayExpectedtimeOfDayActual
udintExpectedudintActualuintExpected
uintActual
ulintExpectedulintActual
usintExpectedusintActualwordExpected
wordActual$092092ee-35b6-45cc-a1ac-e428e5d747ba | Asserts that two TIME_OF_DAYs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – TIME_OF_DAY expected value
| Actual – TIME_OF_DAY actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
END_VAR
TEST('Test_TIME_OF_DAY_Equals');
AssertEquals_TIME_OF_DAY(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : TIME_OF_DAY := TIME_OF_DAY#15:36:30.123;
b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
END_VAR
TEST('Test_TIME_OF_DAY_Differ');
AssertEquals_TIME_OF_DAY(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 262122215AssertEquals_TIME_OF_DAY TIME_OF_DAY expected value TIME_OF_DAY actual value$d892dd01-3d32-4eb1-9f95-980dff16616c | Asserts that two USINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – USINT expected value
| Actual – USINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : USINT := 5;
b : USINT := 5;
END_VAR
TEST('Test_USINT_Equals');
AssertEquals_USINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : USINT := 3;
b : USINT := 7;
END_VAR
TEST('Test_USINT_Differ');
AssertEquals_USINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
2368473972AssertEquals_USINT USINT expected value USINT actual value$7f12117a-f0ab-475b-ba47-c8a5c801a9ac | Asserts that two DINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – DINT array with expected values
| Actuals – DINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538];
b : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538];
END_VAR
TEST('Test_DINT_Array_Equals');
AssertArrayEquals_DINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[3..4] OF DINT := [-11, 2147483647];
b : ARRAY[4..6] OF DINT := [-11, 2147483647, 0];
END_VAR
TEST('Test_DINT_Array_DifferInSize');
AssertArrayEquals_DINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[3..5] OF DINT := [-4746, -2147483645, 0];
b : ARRAY[3..5] OF DINT := [-4746, -2147483641, 0];
END_VAR
TEST('Test_DINT_Array_DifferInContent');
AssertArrayEquals_DINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 448306293AssertArrayEquals_DINT DINT array with expected values DINT array with actual values$4f0d9b20-0c78-467d-a52a-6badbd5d37cc | Asserts that two SINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – SINT expected value
| Actual – SINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : SINT := -128;
b : SINT := -128;
END_VAR
TEST('Test_SINT_Equals');
AssertEquals_SINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : SINT := 127;
b : SINT := -30;
END_VAR
TEST('Test_SINT_Differ');
AssertEquals_SINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
2975568326AssertEquals_SINT SINT expected value SINT actual value$10052dfe-cfcb-4a5a-aa97-151e272ce217
3094313462GetNumberOfTests$6f67c6d5-c29e-4577-8651-51bd6db3ab63 | Asserts that two LREALs are equal to within a positive delta. If they are not, an assertion error is created.
Parameters:
| Expected – LREAL expected value
| Actual – LREAL actual value
| Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : LREAL := 1234567.89;
b : LREAL := 1234567.76;
END_VAR
TEST('Test_LREAL_Equals');
AssertEquals_LREAL(Expected := a,
Actual := b,
Delta := 0.2,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : LREAL := 1234567.89;
b : LREAL := 1234567.76;
END_VAR
TEST('Test_LREAL_Differ');
AssertEquals_LREAL(Expected := a,
Actual := b,
Delta := 0.1,
Message := 'Values differ');
TEST_FINISHED();
3690545254AssertEquals_LREAL LREAL expected value LREAL actual valuev The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal$205d107c-0a2d-44f7-b68a-eb06720b6a6b
4117816331 Parameters:
| Expecteds – REAL 2d array with expected values
| Actuals – REAL 2d array with actual values
| Delta - REAL 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
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
TEST_FINISHED();
4044968825AssertArray2dEquals_REAL# REAL 2d array with expected values2! REAL 2d array with actual values& Index when looping through DimensionsDimensionIndex2 Lower bounds of Expecteds array in each dimensionLowerBoundExpecteds2 Upper bounds of Expecteds array in each dimensionUpperBoundExpecteds0 Lower bounds of Actuals array in each dimensionLowerBoundActuals0 Upper bounds of Actuals array in each dimensionUpperBoundActuals* Size of Expecteds array in each dimension( Size of Actuals array in each dimension? Current Array index offsets from Lower Bound in each dimensionOffsetD Array of current Expected array indexes when looping through arraysExpectedArrayIndexB Array of current Actual array indexes when looping through arraysActualArrayIndex Single expected value Single actual value$dc3b5666-7b5a-49ae-9837-cbb9bedd911a 598611264AddTestNameToInstancePathCompleteTestInstancePath$abecfe2f-b0e2-4118-a1c6-bb248556b776
Asserts that a condition is true. If it is not, an assertion error is created.
Parameters:
| Condition – Condition to be checked
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : WORD := 16#ABCD;
b : WORD := 16#0123;
END_VAR
TEST('AssertThatWORDsAreNotEqual');
AssertTrue(Condition := (a <> b),
Message := 'WORDs are equal');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : WORD := 16#ABCD;
b : WORD := 16#0123;
END_VAR
TEST('AssertThatWORDsAreEqual');
AssertTrue(Condition := (a = b),
Message := 'WORDs are not equal');
TEST_FINISHED();
1043909239
AssertTrue Condition to be checked Condition$c415013c-c271-42ba-83ad-6c2c653d8f2e Parameters:
| Expecteds – LREAL 3d array with expected values
| Actuals – LREAL 3d array with actual values
| Delta - LREAL 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
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
TEST_FINISHED();
3893451479AssertArray3dEquals_LREAL$ LREAL 3d array with expected values3" LREAL 3d array with actual values$251da4d5-4df8-4eed-b154-a479323eb0d5 | Asserts that two INTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – INT expected value
| Actual – INT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : INT := -12345;
b : INT := -12345;
END_VAR
TEST('Test_INT_Equals');
AssertEquals_INT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : INT := -32000;
b : INT := 15423;
END_VAR
TEST('Test_INT_Differ');
AssertEquals_INT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 292426684AssertEquals_INT INT expected value INT actual value$7c61106e-9bcd-4577-a949-ab96d8862e41 | Asserts that two DATEs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – DATE expected value
| Actual – DATE actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : DATE := DATE#1996-05-06;
b : DATE := DATE#1996-05-06;
END_VAR
TEST('Test_DATE_Equals');
AssertEquals_DATE(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : DATE := DATE#1996-05-06;
b : DATE := DATE#2019-01-20;
END_VAR
TEST('Test_DATE_Differ');
AssertEquals_DATE(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 246969074AssertEquals_DATE DATE expected value DATE actual value$1645ab79-f969-41aa-a170-f589a5757e7f | Asserts that two DWORDs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – DWORD expected value
| Actual – DWORD actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : DWORD := 16#7890ABCD;
b : DWORD := 16#7890ABCD;
END_VAR
TEST('Test_DWORD_Equals');
AssertEquals_DWORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : DWORD := 16#12345678;
b : DWORD := 16#90ABCDEF;
END_VAR
TEST('Test_DWORD_Differ');
AssertEquals_DWORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
1252105877AssertEquals_DWORD DWORD expected value DWORD actual value$3ce6ba77-0ab2-46fc-a7c9-978b376b93be | Asserts that two REALs are equal to within a positive delta. If they are not, an assertion error is created.
Parameters:
| Expected – REAL expected value
| Actual – REAL actual value
| Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : REAL := 1234.5;
b : REAL := 1234.4;
END_VAR
TEST('Test_REAL_Equals');
AssertEquals_REAL(Expected := a,
Actual := b,
Delta := 0.1,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : REAL := 1234.5;
b : REAL := 1234.4;
END_VAR
TEST('Test_REAL_Differ');
AssertEquals_REAL(Expected := a,
Actual := b,
Delta := 0.05,
Message := 'Values differ');
TEST_FINISHED();
4233966449AssertEquals_REAL REAL expected value REAL actual value$fba4feaf-27d0-4f8b-9014-3895f7bb9cc7 | Asserts that two UDINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – UDINT expected value
| Actual – UDINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : UDINT := 21845123;
b : UDINT := 21845123;
END_VAR
TEST('Test_UDINT_Equals');
AssertEquals_UDINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : UDINT := 34124214;
b : UDINT := 52343244;
END_VAR
TEST('Test_UDINT_Differ');
AssertEquals_UDINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
3714610654AssertEquals_UDINT UDINT expected value UDINT actual value$9c21e8db-62d7-4e5c-8e00-cd508f4f5abc | Asserts that two LTIMEs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – LTIME expected value
| Actual – LTIME actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
b : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
END_VAR
TEST('Test_LTIME_Equals');
AssertEquals_LTIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
b : LTIME := LTIME#1000D15H23M12S34MS2US44NS;
END_VAR
TEST('Test_LTIME_Differ');
AssertEquals_LTIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
3081469954AssertEquals_LTIME LTIME expected value LTIME actual value$05ea6378-c553-40a9-9e6b-8f3736f63098 | Asserts that two SINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – SINT array with expected values
| Actuals – SINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[0..3] OF SINT := [-128, 127, -34, 62];
b : ARRAY[0..3] OF SINT := [-128, 127, -34, 62];
END_VAR
TEST('Test_SINT_Array_Equals');
AssertArrayEquals_SINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[0..0] OF SINT := [-128];
b : ARRAY[0..1] OF SINT := [-128, 127];
END_VAR
TEST('Test_SINT_Array_DifferInSize');
AssertArrayEquals_SINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..0] OF SINT := [-128];
b : ARRAY[0..0] OF SINT := [127];
END_VAR
TEST('Test_SINT_Array_DifferInContent');
AssertArrayEquals_SINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 167706794AssertArrayEquals_SINT SINT array with expected values SINT array with actual values$133c577e-0641-4157-b42b-46dbf29f788e | Asserts that two TIMEs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – TIME expected value
| Actual – TIME actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : TIME := T#11H34M13S244MS;
b : TIME := T#11H34M13S244MS;
END_VAR
TEST('Test_TIME_Equals');
AssertEquals_TIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : TIME := T#12H34M15S10MS;
b : TIME := T#11H34M13S244MS;
END_VAR
TEST('Test_TIME_Differ');
AssertEquals_TIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
3910873930AssertEquals_TIME TIME expected value TIME actual value$717a0cdd-16a7-4f45-90f3-f5700dba9369 | Asserts that two DATE_AND_TIMEs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – DATE_AND_TIME expected value
| Actual – DATE_AND_TIME actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30;
b : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30;
END_VAR
TEST('Test_DATE_AND_TIME_Equals');
AssertEquals_DATE_AND_TIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : DATE_AND_TIME := DATE_AND_TIME#1996-05-06-15:36:30;
b : DATE_AND_TIME := DATE_AND_TIME#1972-03-29-00:00:00;
END_VAR
TEST('Test_DATE_AND_TIME_Differ');
AssertEquals_DATE_AND_TIME(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
1401989022AssertEquals_DATE_AND_TIME DATE_AND_TIME expected value DATE_AND_TIME actual value$42befc01-2199-49e2-b7ef-cf909b8890f9 Parameters:
| Expecteds – REAL 3d array with expected values
| Actuals – REAL 3d array with actual values
| Delta - REAL 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
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
TEST_FINISHED();
1606741492AssertArray3dEquals_REAL# REAL 3d array with expected values! REAL 3d array with actual values$0dc8fccf-4b9a-4206-8d9f-212f576edb04
4262076380FB_initH if TRUE, the retain variables are initialized (warm start / cold start)O if TRUE, the instance afterwards gets moved into the copy code (online change)$9273f5af-0583-448b-bab6-3359f03f9b91 | Asserts that two DINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – BYTE expected value
| Actual – BYTE actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : DINT := -80000;
b : DINT := -80000;
END_VAR
TEST('Test_DINT_Equals');
AssertEquals_DINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : DINT := -55555;
b : DINT := 70000;
END_VAR
TEST('Test_DINT_Differ');
AssertEquals_DINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
1997820164AssertEquals_DINT DINT expected value DINT actual value$b7177b75-64df-4021-85c6-c366f61f5f89 | Asserts that two UDINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – UDINT array with expected values
| Actuals – UDINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000];
b : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000];
END_VAR
TEST('Test_UDINT_Array_Equals');
AssertArrayEquals_UDINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
a : ARRAY[-5..-4] OF UDINT := [4294967295, 0];
b : ARRAY[0..2] OF UDINT := [4294967295, 0, 5000];
END_VAR
TEST('Test_UDINT_Array_DifferInSize');
AssertArrayEquals_UDINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[-5..-4] OF UDINT := [4294967295, 5];
b : ARRAY[0..1] OF UDINT := [4294967295, 4];
END_VAR
TEST('Test_UDINT_Array_DifferInContent');
AssertArrayEquals_UDINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 523934130AssertArrayEquals_UDINT! UDINT array with expected values UDINT array with actual values$5f690331-57e2-4ea1-b1d7-ab65b52dc848 | Asserts that two INT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – INT array with expected values
| Actuals – INT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[-5..1] OF INT := [64, 98, -32768, 32767, 5478, -378, 42];
b : ARRAY[1..7] OF INT := [64, 98, -32768, 32767, 5478, -378, 42];
END_VAR
TEST('Test_INT_Array_Equals');
AssertArrayEquals_INT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[-4..3] OF INT := [64, 98, -32768, 32767, 5478, -378, 42, 6234];
b : ARRAY[1..5] OF INT := [64, 98, -32768, 32767, 5478];
END_VAR
TEST('Test_INT_Array_DifferInSize');
AssertArrayEquals_INT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[-8..-6] OF INT := [42, -23, -32768];
b : ARRAY[1..3] OF INT := [42, 24, -32768];
END_VAR
TEST('Test_INT_Array_DifferInContent');
AssertArrayEquals_INT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED(); 528458294AssertArrayEquals_INT INT array with expected values INT array with actual values$d54cf111-a7e7-4f51-bdf4-9853e055f62d | Asserts that a condition is false. If it is not, an assertion error is created.
Parameters:
| Condition – Condition to be checked
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : INT := -33;
b : INT := -44;
END_VAR
TEST('AssertThatINTsAreNotEqual');
AssertFalse(Condition := (a = b),
Message := 'INTs are equal');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : INT := -33;
b : INT := -44;
END_VAR
TEST('AssertThatINTsAreEqual');
AssertFalse(Condition := (a <> b),
Message := 'INTs are equal');
TEST_FINISHED();
1993015657AssertFalse$022665a8-9003-4aaa-8ef4-bd39fe196883 614213211GetNumberOfFailedTestsFailedTestsCount$12e4522b-e67f-439a-af1d-8713231888aa
| Asserts that two LINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – LINT array with expected values
| Actuals – LINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[-1..0] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
END_VAR
TEST('Test_LINT_Array_Equals');
AssertArrayEquals_LINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55];
b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
END_VAR
TEST('Test_LINT_Array_DifferInSize');
AssertArrayEquals_LINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_853_775_808, 55];
b : ARRAY[4..6] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55];
END_VAR
TEST('Test_LINT_Array_DifferInContent');
AssertArrayEquals_LINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
2145025305AssertArrayEquals_LINT LINT array with expected values LINT array with actual values$d7e53e6b-caed-4867-9ef5-3ccb7ae16bf8 | Asserts that two LWORD arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – LWORD array with expected values
| Actuals – LWORD array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
END_VAR
TEST('Test_LWORD_Array_Equals');
AssertArrayEquals_LWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210];
b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
END_VAR
TEST('Test_LWORD_Array_DifferInSize');
AssertArrayEquals_LWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210];
b : ARRAY[1..1] OF LWORD := [16#01234567890ABCDE];
END_VAR
TEST('Test_LWORD_Array_DifferInContent');
AssertArrayEquals_LWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
2393999758AssertArrayEquals_LWORD! LWORD array with expected values LWORD array with actual values$7bc0c786-fccc-46e3-b38f-2013c44bfcb0S This method returns the test at the n'th position, ranging from 1.. NumberOfTests 316618143GetTestByPositionPosition$3795ba6c-bb70-4d36-8d46-fa6431157992 | Asserts that two LWORDs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – LWORD expected value
| Actual – LWORD actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : LWORD := 16#0123456789ABCDEF;
b : LWORD := 16#0123456789ABCDEF;
END_VAR
TEST('Test_LWORD_Equals');
AssertEquals_LWORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : LWORD := 16#0123656789ABCBEC;
b : LWORD := 16#0123256789ABCAEE;
END_VAR
TEST('Test_LWORD_Differ');
AssertEquals_LWORD(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
2981194089AssertEquals_LWORD LWORD expected value LWORD actual value$08b090fb-911b-49fa-a51a-7f5edfd3dd2c Parameters:
| Expecteds – LREAL 2d array with expected values
| Actuals – LREAL 2d array with actual values
| Delta - LREAL 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
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
TEST_FINISHED();
3118050793AssertArray2dEquals_LREAL$ LREAL 2d array with expected values" LREAL 2d array with actual values$964c2fec-9de7-47ae-bee4-23c559ae4a3f 355422951
Asserts that two BOOL arrays are equal. If they are not, an assertion error is created.
Parameters:
* Expecteds – BOOL array with expected values
* Actuals – BOOL array with actual values
* Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE];
b : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE];
END_VAR
TEST('Test_BOOL_Array_Equals');
AssertArrayEquals_BOOL(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[1..6] OF BOOL := [TRUE, TRUE, TRUE, TRUE, TRUE, TRUE];
b : ARRAY[1..4] OF BOOL := [TRUE, TRUE, TRUE, TRUE];
END_VAR
TEST('Test_BYTE_Array_DiffersInSize');
AssertArrayEquals_BOOL(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..5] OF BOOL := [TRUE, TRUE, FALSE, TRUE, FALSE, TRUE];
b : ARRAY[0..5] OF BOOL := [TRUE, TRUE, TRUE, TRUE, FALSE, FALSE];
END_VAR
TEST('Test_BYTE_Array_DiffersInContent');
AssertArrayEquals_BOOL(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
2327915240AssertArrayEquals_BOOL BOOL array with expected values BOOL array with actual values$3d4059ab-c241-4859-9a9f-090cab6db606
1486870384AreAllTestsFinished$2b211901-49a8-4e51-90e1-4b1e298f9e0c
1475975773AddTestErrorMessageFunctionCallResultTestWithThisNameAlreadyExistsLowerCasedTestNameTrimmedTestName$d383011f-6bea-4b05-9018-ea4782ad2837
2609692221
| Asserts that two DWORD arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – DWORD array with expected values
| Actuals – DWORD array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[2..3] OF DWORD := [16#6789ABCD, 16#EF012345];
b : ARRAY[1..2] OF DWORD := [16#6789ABCD, 16#EF012345];
END_VAR
TEST('Test_DWORD_Array_Equals');
AssertArrayEquals_DWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#67890ABC, 16#DDDDDDDD];
b : ARRAY[-3..-2] OF DWORD := [16#6789ABCD, 16#EF012345];
END_VAR
TEST('Test_DWORD_Array_DifferInSize');
AssertArrayEquals_DWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EFAA2346, 16#ABABABAB, 16#EEEEEEEE];
b : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#ABABABAB, 16#EEEEEEEE];
END_VAR
TEST('Test_DWORD_Array_DifferInContent');
AssertArrayEquals_DWORD(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
2193117219AssertArrayEquals_DWORD! DWORD array with expected values DWORD array with actual values$eec9d02d-95a1-4885-9906-ad4b2d0f4cab= Searches for the instance path of the calling function block
1936542576FindTestSuiteInstancePath$e69a4510-81a2-4d65-94e4-52c06ac49944 | Asserts that two BYTEs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – BYTE expected value
| Actual – BYTE actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : BYTE := 16#CD;
b : BYTE := 16#CD;
END_VAR
TEST('Test_BYTE_Equals');
AssertEquals_BYTE(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : BYTE := 16#AB;
b : BYTE := 16#CD;
END_VAR
TEST('Test_BYTE_Differ');
AssertEquals_BYTE(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 268346097AssertEquals_BYTE BYTE expected value BYTE actual value$c039f3f1-9c41-4f5e-93a3-393ce160979a | Asserts that two UINTs are equal. If they are not, an assertion error is created.
Parameters:
| Expected – UINT expected value
| Actual – UINT actual value
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : UINT := 65535;
b : UINT := 65535;
END_VAR
TEST('Test_UINT_Equals');
AssertEquals_UINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
.. code-block:: codesys
VAR
a : UINT := 64322;
b : UINT := 32312;
END_VAR
TEST('Test_UINT_Differ');
AssertEquals_UINT(Expected := a,
Actual := b,
Message := 'Values differ');
TEST_FINISHED(); 455476556AssertEquals_UINT UINT expected value UINT actual value$86b960b9-ebc0-46af-91ed-94a423f501dc
2084092420GetInstancePath$178fa338-5ed3-417b-8f4d-e9f120ace4b9 Marks the test as finished in this testsuite.
Returns TRUE if test was found, and FALSE if a test with this name was not found in this testsuite
3967847859SetTestFinished$1ec94335-80d7-46d3-a0f0-345f8eda2ea4 | Asserts that two UINT arrays are equal. If they are not, an assertion error is created.
Parameters:
| Expecteds – UINT array with expected values
| Actuals – UINT array with actual values
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59];
b : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59];
END_VAR
TEST('Test_UINT_Array_Equals');
AssertArrayEquals_UINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
VAR
a : ARRAY[0..2] OF UINT := [0, 4, 8];
b : ARRAY[0..3] OF UINT := [0, 4, 8, 12];
END_VAR
TEST('Test_UINT_Array_DifferInSize');
AssertArrayEquals_UINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
VAR
a : ARRAY[0..3] OF UINT := [0, 4, 8, 99];
b : ARRAY[0..3] OF UINT := [0, 4, 8, 12];
END_VAR
TEST('Test_UINT_Array_DifferInContent');
AssertArrayEquals_UINT(Expecteds := a,
Actuals := b,
Message := 'Arrays differ');
TEST_FINISHED();
1542196384AssertArrayEquals_UINT UINT array with expected values UINT array with actual values$358571ac-0a0d-4e71-8097-c7943f718fce 405680698 | Asserts that two LREALs are equal TO within a positive delta. IF they are NOT, an assertion error is created.
Parameters:
| Expected – LREAL expected value
| Actual – LREAL actual value
| Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
VAR
a : LREAL := 1234567.89;
b : LREAL := 1234567.76;
END_VAR
TEST('Test_LREAL_Equals');
AssertEquals_LREAL(Expected := a,
Actual := b,
Delta := 0.2,
Message := 'Values differ');
TEST_FINISHED();
Failing example:
VAR
a : LREAL := 1234567.89;
b : LREAL := 1234567.76;
END_VAR
TEST('Test_LREAL_Differ');
AssertEquals_LREAL(Expected := a,
Actual := b,
Delta := 0.1,
Message := 'Values differ');
TEST_FINISHED();
3785330774AssertArrayEquals_LREAL! LREAL array with expected values LREAL array with actual values$fbc23ff0-cdf6-43f2-82cd-e6f3a7903664 Jitter distribution
3779252147 Maximal range wRangeMax Jitters events negativewCountJitterNeg Jitter event positivewCountJitterPos
1489059357$f914311f-5c52-4cd5-b2c8-3263a1508247
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 252 characters long.
3001289633 Test instance pathMsgFmtString
Test message StringArgMsgFmtStringProcessedStringArgProcessedMsgFmtStringTemp...TestName too longTestNameTooLong...TestMsg too longTestMsgTooLongX This is actually 253, but if StrArg-argument is used (which it is in TcUnit) it is 252.'MSG_FMT_STRING_MAX_AMOUNT_OF_CHARACTERSILocal, ReplacedConstant, Constant, IsCompiled, RelativeInstance, Typified 228984903$d7648cea-fb9f-427f-b157-93784e5b7cab
3505840675 197406720
2734844869
3297551346
2662650258diLowerdiUpper
3465986364$c2d24aa9-2fc9-4f89-80ac-14d9f558122a 319472823
This FB compares two instances of any object type and returns whether they
are the same type, size and value or not. This is necessary for two reasons:
1. So that we can know exactly what differs between the two input parameters
2. It's not possible to do a comparison (= or <>) between two instances of ANY.
797308994AnyValueOne.pValueAnyValueOne__pValueAnyValueOne.TypeClassAnyValueOne__typeClassAnyValueOne.diSizeAnyValueOne__sizeOfAnyValueOneAnyValueTwo.pValueAnyValueTwo__pValueAnyValueTwo.TypeClassAnyValueTwo__typeClassAnyValueTwo.diSizeAnyValueTwo__sizeOfAnyValueTwo< The data type of the two ANY input parameters are not equal< The data size of the two ANY input parameters are not equal? The data content of the two ANY input parameters are not equal
3159686021$e4f95c0d-0ece-47a8-977f-f9d45a4f920e
390107427211252403 173265148 958090425
2765784940_Implicit_Task_InfoKindOf_IMPLICIT_KINDOFTASKbProfilingTaskdwLastCycleTimediJitterdiJitterMindiJitterMaxwTaskStatus_IMPLICIT_JITTER_DISTRIBUTION_Implicit_Jitter_DistributionbWithinSPSTimeSlicingbShouldBlockbActivenCoreConfigurednCoreCurrent
pTaskGroup_IMPLICIT_TASKGROUP_INFO_Implicit_TaskGroup_InfopszParentTaskName
3064147540$c4b8e551-3215-5dbb-9355-8dcf3e162bd6
4288098520
1363320977 235137531$87c49645-6ce5-5bcf-bae6-132a41e0c4aa
2880228939
2164913627pszGroupNamedwTaskGroupOptions
diMaxCoresparrdwCoreBits 638065670$3f237607-46ae-5106-b06d-831888578227 187872831
2860490203$e6fb6cf6-9591-477a-a303-fdedaad04613
__OffsetIBASEADDREF FB_REINITQUERYINTERFACERELEASEcompatibility_id$76B148E2-3A84-40c4-8BF2-2FBE56618A2F
2439911566$de784a2a-6a84-4c6b-a64b-74bfc4713c79
1835024534FB_Exit$d4f5d20f-e146-4306-9ffb-0b952fe8bdb2 805362587QueryInterface
InterfaceID iid$eac54f77-5545-412a-8930-013043c93f65
3642965170Release$13829801-a5ee-4705-bf92-a3430e33fe75 951162479AddRef$63704945-b29a-4e6d-b620-0cc4c326d5f8 189822725 FB_Reinit$e129df86-3969-4c96-8e86-63bc2fcd6c83 331523042VERSIONuiMajoruiMinor
uiServicePackuiPatch
3231598516$5181460b-9464-4c0f-82f2-1f9633a4c34e
1518820524TWOPLUSTWOEQUALSFOURZEROPLUSZEROEQUALSZEROCfUnit
4004392889FB_Sum_Test
2468246447FB_SUM_TEST$69b661ca-5faa-43bb-8b8a-2cae13b2cfe4
3804393560TwoPlusTwoEqualsFourSumFB_SUMFB_SumResultExpectedSum$071ba4c3-fe0d-4b0b-be72-a320c9d403a4 470409468
4018862981ZeroPlusZeroEqualsZero$ac47aa92-0e7a-4876-b0ac-7ef29219d372 635803319
1660718324
3010342448 212020793 476154767PRG_TEST
fbSum_Test1Local, IsCompiled, Absolut, Initialized, Typified$5e8cc903-e536-40be-a096-d6b305fbb618
1368625671onetworesult 323964421$8328f7d8-1dbc-4e08-98b0-eb6438d2b355 855406638 228684100
2173869412
1334945094 204906898
2338394504_Implicit_Task_Config_InfoTODO eventtaskswVersionnNumOfTaskspszApplicationNameptasks
3669029852_IMPLICIT_TASK_CONFIG_INFO$00bdef65-acea-502d-a09a-9b27b86d5df1
1234088797
1833442206__sys__setup__tasks$a7f75517-fce3-59d9-a7f4-75773ea190a0 830427680LogAdd2hLoggerudiCmpID
udiClassID
udiErrorID udiInfoIDpszInfo$f782c8f1-3e37-44f5-9ca0-ba40c1145169cmplog, 3.5.5.0 (system)
2222278874__HelpConvertDateppstrnYearnMonthnDayDayOfMonthTable$1c137676-f66f-428c-af12-54699e1772b8
2130786092__HelpConvertTimedwHourdwMinutedwSecond
dwMilliSecond$13c0f538-7207-41d3-8311-a322a7c20a0e
3586288056__HelpConvertTimeWithUnitdwDay$50f01a4a-c350-4e6e-9dfa-0c242ec58ce8 371843759
__HelpConvertUDInt$fdd0113a-d0f8-4f19-bc73-fa6acf9ecc59
1562513299
__ExtractRealL True iff f is infinity, diM = 1 for +Infinity and -1 for -Infinity, iE is 0fiEdiMxNaNuiEudiM$b4fbe026-742b-4541-9a4b-a710de7d376c
2223293048__HelpConvertLTimeWithUnitlwDaylwHourlwMinutelwSecond
lwMilliSecond
lwMicroSecondlwNanoSecond$9b7fa8d4-59a0-43f0-a610-be7bd5350ad9
1212736547__ExtractLRealdudiEuliM$0ffc8285-5cf0-4854-bfbf-cfca06799935
3132572671__HelpRealConvertpnBeginnDigdBegindDivbNeg
nHelpBegindDiff$e6a8a736-c389-4a55-8363-2e30c26fed79 Concatenates two strings
``CONCAT(STR1,STR2)`` means: Connect ``STR1`` and ``STR2`` to a single string ``STR1STR2``.
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'SUSIWILLI' *)
VarSTRING1 := CONCAT ('SUSI','WILLI');
:return: Concatenated string, max. 255 characters. If the result doesn't fit into these 255 bytes, it will be silently truncated. No error is produced.
.. cds:ranges::
:STR1: |StringRange255|
:STR2: |StringRange255|
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
2972623772CONCAT1 String 1 to be concatenated, max. 255 charactersSTR11 String 2 to be concatenated, max. 255 charactersSTR2
4221632325LicenseFunctionsdwStructSizepfGetUserLicenseValuepfConfDynLicChallengepfReqDynLicChallenge
1958349117LICENSEFUNCTIONS$54113402-1f1a-4625-9cf5-98f840f808d4$component manager, 3.5.13.0 (system)
3247230088CMRegisterLicenseFunctionslicenseFunctions$9d4b8b53-13e6-49d1-812f-48d05c3b6bde 674459537UnregisterLicenseFunctionslf$fad78c76-def3-4349-88ac-a7d7b102610049087098SysTargetGetIdpulTargetId/External, Compiled, Typified, Located, Internal$2882c277-8c61-400a-b7f8-fedf8770b0b5
1255376976SysTargetGetTypepulType$8626ba32-8246-4efc-a245-c6603743ef15
2879083722RegisterLicenseFunctions$3a698490-0f8e-4b05-ba85-54b389411e5bCodeMGetContentByFirmcode2
3702754381CodeMGetContentByFirmcodeduiFirmcodeduiProductcodelicenseEntryRTS_CMBOXENTRY*Inout, IsCompiled, RelativeStack, Typified$22f4fc39-59c8-43ad-9dcc-9e20e4b9a58bcmpcodemeter, 3.5.5.0 (system) 669955528
musBoxMaskmulBoxSerial mflFiCtrlmulFirmCodemusFirmAccessCountermusFirmItemRefmulFirmUpdateCountermulFirmPreciseTimemausFirmItemTextmulProductCode
mulFeatureMapmulUnitCountermulLicenseQuantitymusProductItemRef
3504795969$b624d05d-ae57-4b33-b835-ddb290871f29
Test and set a bit in an ULONG variable in one processor step. This operation is to provide
a multitasking save operation.
RESULT: Returns the runtime system error code (see CmpErrors.library).
ERR_OK: If bit could be set and was set before,
ERR_FAILED: If bit is still set
3306130432SysCpuTestAndSet Pointer to the unsigned value to test and set a bit inside in one atomic
processor step pulValuep Bit number inside the variable to test and set. 0=first bit, 31=last bit ulBit$1b91f178-37d6-463f-a613-9f24443e9396!syscpuhandling, 3.5.13.0 (system)
2702096027mySTRING_TO_UDINTuiBase$7c03f9aa-a908-4345-8fdc-2902079aa956 Returns the number of characters of a string
.. code-block:: codesys
(* Example declaration *)
VarINT1 : INT ;
(* Example in ST , result is '4 *)
VarINT1 := LEN ('SUSI');
:return: Length of string ``STR``
.. cds:ranges::
:STR: |StringRange255|
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
2091238964LEN String to be analyzed STRp$d60923f9-da06-44f9-ab52-de513236e3e2 Searches for the position of a partial string within a string.
``FIND(STR1, STR2)`` means: Find the position of the first character where ``STR2`` appears
in ``STR1`` for the first time. If STR2 is not found in STR1, then OUT:=0.
.. code-block:: codesys
(* Example declaration *)
arINT1 : INT ;
(* Example in ST , result is '4' *)
arINT1 := FIND ('abcdef','de');
:return: Character position of the first occurance of ``STR2`` in ``STR1``. If no occurance is found, result is 0
.. cds:ranges::
:STR1: |StringRange255|
:STR2: |StringRange255|
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3278768737* String within which ``STR2`` is searched / String whose position is searched in ``STR1`` pszComp1pszComp2$182b0d71-64b9-4f59-8550-dfdea6ddbf15 Returns a specific number of characters of a string, starting from left
``LEFT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the left in string ``STR``
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'SUS' *)
VarSTRING1 := LEFT ('SUSI',3);
:return: Resulting string
.. cds:ranges::
:STR: |StringRange255|
:SIZE: [0..255]
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3595690875LEFT String to be analyzed Number of characters SIZE$305543de-642d-43ec-a366-8f771da1539d Returns a specific number of characters of a string, starting from a specific position
``MID (STR, LEN, POS)`` means: Retrieve ``LEN`` characters from the ``STR`` string beginning with the character at position ``POS``.
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'US' *)
VarSTRING1 := MID ('SUSI',2,2);
:return: Partial string of ``STR``
.. cds:ranges::
:STR: |StringRange255|
:LEN: [0..255]
:POS: [0,1..255]
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
176614815MID, Number of characters, counted from the left& Start position for the partial stringPOS$83426200-a15f-4a0f-939b-ec775900aa99 Returns a specific number of characters of a string, starting from right
``RIGHT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the right in string ``STR``
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'USI' *)
VarSTRING1 := RIGHT ('SUSI',3);
:return: Resulting string
.. cds:ranges::
:STR: |StringRange255|
:SIZE: [0..255]
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
1359190538RIGHT Number of characters liResult$e1f7857b-7abd-48e8-91d6-d6b740f939c9
Adds a message to the log, if the message is longer then 127 characters
ithe entry splits into two log messages (max 255 chars = 2 log entries)
Usage example:
LOGSTR( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_INFO ),
msgFmtStr := 'Ammount of tests : %s',
strArg := uiTestAmmount );
results into the following logstring
Ammount of tests : 3
2043841041WRITE_DEVICE_LOG/ use UDINT_TO_DWORD( CmpLog.LogClass.LOG_.... )msgCtrlMask( Usage example: ' Ammount of tests : %s' msgFmtStr Usage example: uiTestAmmountstrArgUSInt uiMaxSizesTextiCharPos$4faf44db-355b-4967-8254-5b291732f959j Close a file specified by handle
:return: Returns the runtime system error code (see CmpErrors.library) Handle of the filesysfile, 3.5.15.0 (system) | Open or create file. A standard path will be added to the filename, if no path is specified in the file name.
| If a file extension is specified in the settings, this path will be used (see category settings).
.. note:: File name can contain an absolute or relative path to the file. Path entries
must be separated with a Slash (/) and not with a Backslash (\\)!
:return: Handle to the file or RTS_INVALID_HANDLE if failed File name. File name can contain an absolute or relative path to the file.
Path entries must be separated with a Slash (/) and not with a Backslash (\\)! | Requested access mode to the file. See |ACCESS_MODE| for details.
| Here find some examples:
:AM_READ: If file does not exist, an error is returned. If the file exists, the file
will be opened
:AM_WRITE: If file does not exist, a new file will be created. If the file exists,
it will be overwritten!
:AM_APPEND: If the file does not exist, an error is returned. If the file exists, the file
will be opened = Pointer to runtime system error code (see CmpErrors.library)\ Read number of bytes out of the file
:return: Number of bytes read from file. 0=if failed Handle of the file Pointer to buffer for read dataL Number of bytes to read from file. Must be less or equal the buffer size! Write number of bytes to the file. File must be opened with |AM_WRITE| or |AM_APPEND|.
:return: Number of bytes written to the file. 0=if failed
1793200295SysFileWrite/ Pointer to buffer with data to write to file M Number of bytes to write in the file. Must be less or equal the buffer size!$a0372ebf-eb9b-4113-942f-e5da73df71dd Project information
*
* Contains the project information as specified in the project information dialog in CoDeSys. To use this, the checkbox
* "Automatically generate POUs for property access" in the project information dialog be enabled.
*
* Project name without ending
* Title
* Version as string in the format "x.x.x.x"
* Author
* Description
3365268717PROJECT_INFO stProjectstTitle stVersionstAuthor
stDescription
1178342348$c1e43dbd-7721-4bd4-a684-c21620fe030fcmpapp, 3.5.15.0 (system)8 reads the application info from the current application
3589885213GetCurProjInfoCMPAPPCmpApppCurAppAPPLICATIONpCurProjInfo
1186304137GETCURPROJINFO$a1b4b1d0-961b-443c-bfbc-d2cb7b8d4e24
3673772398
1934937439
2447250513
4156868057
34495476466F_RemoveInstancePathAndProjectNameFromTestInstancePathCharacterPositionOfProjectNameProjectNameWithDot$7816860e-5623-4ff0-b466-902e340371e3
3203763967 POINTER TO parent application
pAppParent* Id of the application. Is always unique. iId GUID for IEC code CodeGuid GUID for IEC data DataGuid> State of the application. See definitions Application states udiStateR Operating state of the application. See definitions Application operation states
udiOpState Handle to bootproject hBootproject Handle to debug task
hDebugTask Global Init Function pfGlobalInit Global Exit Function pfGlobalExit Handle a pool of session-ids hSessionIdPool Handle a pool of force entries
hForcePool Handle a pool of breakpoints hBPPool Is persistent force enabled Application name szNameMAX_LEN_APPLNAME7Version number of Programming system (set in download) udiPSVersion?Version number of Target settings used by PS (set in download) udiTargetSettingVersion
1512497683$91664799-0da5-417a-9e5e-db9ec74ea6f2[ Removes leading spaces from the character string and returns the reduced character string.
1900748652F_LTrim$6ef917e6-7f9e-46f0-99fd-87a9a9b883adO Truncates all trailing spaces from the specified value and returns the result.
3142262884F_RTrim$29c1cd9e-70b7-43a9-8e3e-f8e8ed84bff7d The F_ToLCase function converts a specified string to lowercase.
Contains portions of OSCAT BASIC 886767803 F_ToLCasePTpos$4177f901-1a7a-4eea-8fe8-63097fea53f3 This function converts a decimal number into a hexadecimal STRING (base 16).
If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left.
If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off!
If the iPrecision parameter and the in parameter are zero, the resulting string is empty.
1972422664BYTE_TO_HEXSTR) The decimal number requiring conversion.IN. Minimum number of displayed digits (digits).
iPrecision[ This parameter determines whether lower or upper case letters are used in the conversion. bLoCasem_Format$83e397b4-6883-4c4e-9910-e0278934299a This function converts a decimal number into a hexadecimal STRING (base 16).
If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left.
If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off!
If the iPrecision parameter and the in parameter are zero, the resulting string is empty.
This is modified version of the DWORD_TO_STRH made by OSCAT, version 1.3, programmer hugo.
3725441371DWORD_TO_HEXSTR4 Minimum number of displayed digits (digits). tempptm_NumberOfDigitsm_precision$37af6bb4-598b-402b-99e0-bd140fa86122
1557660451LWORD_TO_HEXSTR$6f6ad65d-94c9-44e7-b5f7-5394a261509c This function converts a decimal number into a hexadecimal STRING (base 16).
If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left.
If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off!
If the iPrecision parameter and the in parameter are zero, the resulting string is empty.
952797014WORD_TO_HEXSTR$028c7654-6828-48cd-8703-659f86aef415? Copies buffer with size of N bytes from source to destination
1485283582MEMCPYdestAddrCAAPVOIDsrcAddrn$7d591bcc-b453-4853-8327-1622b58624cc; Realize a target specific data type for general pointers.
2901015905 Prefix: p $607a79a2-c60b-4e09-b161-a4f6d8099b004caa types extern, 3.5.13.0 (caa technical workgroup)e This function takes the type-class of a ANY-variable and returns the STRING representation of it.
3242817338F_AnyTypeClassToStringAnyTypeClass$9e1352f3-5f86-40fd-88db-b6807b901391O Funktion to get own task handle
:return: Returns the current IEC task handle
4249138636IecTaskGetCurrentK Pointer that returns the runtime system error code (see CmpErrors.library)$b1d506b4-a9e7-4ec3-8e73-e6697d723ffbt Function returns the task information of the specified task
:return: Return a pointer to the task info structure
4205902187IecTaskGetInfo3 Handle to the specified taskhIecTaskpti$941fd632-1e71-4fc0-a13a-6074eb0adf1c
2092783167F_AnyToUnionValueAnyValue.pValueAnyValue__pValueAnyValue.TypeClassAnyValue__typeClassAnyValue.diSizeAnyValue__sizeOfAnyValue$04a97242-7600-4a30-a234-b9e3b1c2770c
3394829069F_IsAnyEqualToUnionValueuExpectedOrActualExpectedOrActual.pValueExpectedOrActual__pValueExpectedOrActual.TypeClassExpectedOrActual__typeClassExpectedOrActual.diSizeExpectedOrActual__sizeOfExpectedOrActualAnyExpectedOrActual$1ab30776-5b8c-4eb4-8ece-b0c087a9b905F
This function runs all test suites that have been initialized.
740068242RUN$bd49b256-e7ba-4b73-b669-380d1f428417c
This function declares a new test (if it has not been already declared in an earlier cycle)
3903357050TESTCounterTestSuiteAddress$8dd61791-c583-4b5e-b392-3e0ecf4878492
Sets the currently running test as finished
563735047
TEST_FINISHED$9922b45b-fca5-4323-be8f-93710371a816 Extracts the components of a REAL floating point number without
interpreting them.
Extracts the sign, (biased) exponent, and mantissa of a REAL value.
We assume the IEEE 754 binary32 format.
All values, including NaN and Infinity are supported.
See http://en.wikipedia.org/wiki/Single_precision_floating-point_format
2007885473__ExtractRealRawC The mantissa as stored in the REAL, without the leading bit 24 setpudi$3d3aa07e-b7ec-4780-af79-d77e0e2cb50f
1475096513__HelpLConvert$26023af2-e263-44c0-b290-4197ca6caa6a 202956791__ExtractLRealRawpuliuli$e543e1fd-2bb8-4ac1-a749-ebad37d711fc
1673363469FctConfDynLicChallenge$f9972cfc-8a33-4e40-85fb-7109a5d893d5
2401095727FctGetUserLicenseValue$c20edd8e-8e57-4f8a-87df-58345eb4164f
2469315043FctReqDynLicChallenge$a38e7aa2-cfa8-41d5-adf5-85021e7b5eaa
1900323445CMUnregisterLicenseFunctions$f1a79dd5-021a-4cf4-ad25-7ec56df08e56CodeMGetContentByFirmcode_local Replaces a specific number of characters of a string by another string
``REPLACE(STR1, STR2, L, P)`` means: Replace ``L`` characters from ``STR1`` by ``STR2``, beginning with the character in the ``P`` position.
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'SKYSI' *)
VarSTRING1 := REPLACE ('SUXYSI','K',2,2);
:return: Resulting string
.. cds:ranges::
:STR1: |StringRange255|
:STR2: |StringRange255|
:L: [0..255]
:P: [0,1..255]
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
517832753REPLACE# String of which a part is replaced) String which replaces a part of ``STR1``) Number of characters, counting from leftLs Start position of the characters to be replaced.
``P = 1`` or ``P = 0`` are both addressing the first characterP indexDestindexSource$f57e2f3d-6edd-4042-ac47-a14833c273c8 448115908
LogOptions Name OF logger Logger active/inactive bEnable See above log types uiType0 Log filter. It is a combination of log classes uiFilter MAX number OF LOG entries iMaxEntries Max file size iMaxFileSize Max number of files iMaxFiles
2267289889
LOGOPTIONS$f29300f0-f83d-490d-9603-d3255fa3095b
2950684213ST_LogCMPLOGCmpLogAssignLOGTYPESLogTypesLT_STDhLogCreated
3954219779ST_LOG$6fa083cf-0816-49b4-9f1f-643d3266b682ADDLOGENTRYPRVCREATENEWLOGGER? registers a Log component in devicelog and accept log messages
2253974937CmpCfLoghCmp
hStdLoggervendorIdcmpId
3274057501CMPCFLOG$e54b0b42-bf68-4a14-aacc-2136ead10c0b
3109562382
1341592248P if TRUE, the instance afterwards gets moved into the copy code (online change) $4b49c03c-b562-4a6d-a8a9-76b527f97a0e
1919457194AddLogEntry
udiClassId
udiErrorId udiInfoId$f39143e0-de49-4075-8bca-59cb6ff62612 281198645$3ba547bb-218f-4ecb-aa09-3033908bd527
2650069375
1638336279
3519561854prvCreateNewLogger$e2af6d5a-2680-44e7-b66a-3c3897d9cb0a Deletes a number of characters from a string
``DELETE (STR, L, POS)`` means: Delete ``L`` characters from ``STR``, beginning with the character in the ``POS`` position.
.. code-block:: codesys
(* Example declaration *)
VarSTRING1 : STRING ;
(* Example in ST , result is 'SUSI' *)
VarSTRING1 := DELETE ('SUXYSI',2,3);
:return: String remaining after deletion
.. cds:ranges::
:STR: |StringRange255|
:LEN: [0..255]
:POS: [0,1..255]
.. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
1739723417DELETE String to be modfiedA Length of the partial string to be deleted, number of charactersZ Position in ``STR`` after which the deletion starts. Counted from left,
starting with 1indexResultbSkip$11510cc9-b7a0-4dd6-8600-402b1638691e
2665969477
AppGetCurrent$7b15c08a-0653-4e21-bae0-a0b9c0885693
1239233586AppGetApplicationInfoAPPLICATION_INFOpApp$a1d0114c-e318-46c3-9f61-93c7e287c132 Application information
*
* Contains the application information as specified in the application property dialog in CoDeSys.
*
* Pointer project name
* Pointer to author
* Pointer to version as string in the format "x.x.x.x"
* Pointer to description
* Pointer to used CoDeSys profile name
* Time and date of last modification of the application (UTC)
2334584805pstProjectName pstAuthor
pstVersionpstDescription
pstProfile
dtLastChanges
3658178702$d8358556-d5ee-4109-b0bb-55d3f6ee3e15
1693369342TO_LOWER$1e55f1d2-e8f8-4c11-a343-0d7e1cf88411
2020938782Printf. The buffer, where the result will be returned cbpResult" The capacity of the result bufferuiResultCapacity0 The format string used for formatting the value cbpFormatV A pointer to the begin of the piece of memory, where the value to format is
stored.G A __SYSTEM.TYPE_CLASS value describing the type of the value to format typeClass$ba8d48f4-b190-46c7-be6b-9336508c391c iecstringutils, 3.5.8.0 (system)IecTaskGetInfo2 711891942IecTaskGetInfo2_Internal TASK_INFO$c6d3a5e1-7385-4753-b73c-f3b0df563229
2900023005 tInterval
tWatchdogTime
tCycleTimetAverageCycleTime
tMaxCycleTime
tMinCycleTime
3657274649$b83e07ab-a3d0-41a5-8f83-2de38b279984
3040543732CMRemoveComponent
hComponent$11bbd436-1d57-4172-8904-e44dc772fedb
3645932812LogClose$c8aaeb24-0f38-477e-9044-1ecd207cbde3
1735259385 LogDelete$52842e3b-7e02-4eaf-bb44-a5db3758476c
2881342543LogOpen$8b85ed35-90d0-4d91-aef7-00ef0b080aad
1116480908 LogCreatepOptions$b35829e6-d182-4ea6-91ec-f4e82032a361Y Does a sprintf for the given format string and the given variable. Will not return NULL!k link even in simulation mode
prevent introducing a signature check lately to prevent compatibility flaws 120951582
StuSprintf the formatstring pstFormat2 the address of the variable that shall be printed8 the type of the variable as a __SYSTEM.TYPE_CLASS value
udiVarType+ the buffer where the text is to be printed the size of the buffer in bytesdwBufferSize$4933794d-6fe5-4285-9a7e-ea7baab7d3f3stringutils, 3.5.14.0 (system)
4251811505"I_TestResultFormatter__Struct__376GLocal, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy, Typified 358323719"I_TESTRESULTFORMATTER__STRUCT__376=Structure, NonVirtual, Generated, Compiled, Typified, Located
3524596434%I_AssertMessageFormatter__Struct__652
2449608530%I_ASSERTMESSAGEFORMATTER__STRUCT__652 205898594IBase__Struct__700__INTERFACEPOINTER__700
3371573693IBASE__STRUCT__700__download__code__online__change__codeglobal__init__bInitRetains__Index
__bInCopyCodeGLOBAL__EXIT"__DATASEGMENTFLAGS__305__GVL__Init#__COMPILE_CONSTANTS__306__GVL__Init__WATCHVARS__307__GVL__Init1__ALLOCATEDIMPLICITREFERENCETYPES__308__GVL__Init#CONSTANTS__309__SYSTEM____GVL__InitTYPE_CLASS__614__GVL__Init$_IMPLICIT_KINDOFTASK__688__GVL__Init/_IMPLICIT_TASK_CONFIG_VARIABLES__749__GVL__Init/_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__Init!__APPLICATIONNAME__138__GVL__Init%__TASKSPECIFICINFOGVL__139__GVL__Init__TYPECLASS__754__GVL__Init&__CONVERSION_CONSTANTS__759__GVL__Init'__LCONVERSION_CONSTANTS__840__GVL__Init __SETUP__CALL__POU__1__GVL__InitPRG_TEST__714__GVL__InitAPPLICATION_CONTENT Offsets in stringtable!SizeOfudiInfoSizeudiInfoVersion uiNumPOUs uiNumDUTs uiNumGVLsuiNumFBsuiNumMethods uiNumLibsarPOUsarDUTsarGVLsarFBs arMethodsarLibsstringtableOutput, IsCompiledInput, IsCompiledInput, IsCompiled, ImplicitCompiledNonVirtual, Generated, Compiled1Structure, Generated, Compiled, Typified, LocatedRemovedAfterDownload__RELOCATE__CODE__PAreaOffsetsNew__dwVersion__PAreaOffsetsIn
__pAdrHelp__i__j__RELOCATE__RESULT
__dwOffset__wHigh__wLow__wCount__PRELOCATIONTABLE__PAreaOffsets8Generated, NoCompareWithNew, Compiled, Typified, Located 669599553__DataSegmentFlags VarGlobal) special flag to indicate an area segmentDA_Data=Local, ReplacedConstant, Constant, Enum, IsCompiled, TypifiedDA_ConstantDA_Input DA_Output DA_Memory DA_RetainDA_CodeDA_Area
DA_PersistentEnum, Compiled, Typified$36b719e5-3a34-450b-b806-362248c6fc69
2121841030__COMPILE_CONSTANTSsystem_variable__CONTAINS_COPY_CODEAReplacedConstant, Constant, Global, IsCompiled, Absolut, Typified$db173c48-0431-4ee2-8080-d72c759a68e3 629370838__WatchVarsCompiled, Typified, Internal$e4086481-b65b-4bfc-821c-c1f278b8711d72176917!__AllocatedImplicitReferenceTypes'Generated, Compiled, Typified, Internal$4e6b58d5-7a7d-4d43-b710-af56f2531e62
3976988861 Constants Like x86, ARM etc
bLittleEndianA the runtime version number as defined by the device description.RuntimeVersion Heap memory was written out of bounds! Memory overwrite error&ERR_MEMORY_OVERWRITE& Invalid handle TO an object&ERR_INVALID_HANDLE& End OF object reached&ERR_END_OF_OBJECT' No changes done'
ERR_NO_CHANGE' Invalid OR unknown INTERFACE'ERR_INVALID_INTERFACE' Functionality NOT supported'ERR_NOT_SUPPORTED'$ No access rights FOR THIS operation'ERR_NO_ACCESS_RIGHTS'( Specified limits OF a resource exceeded'ERR_OUT_OF_LIMITS'M Remaining entries that could NOT be transmitted because OF buffer limitation'ERR_ENTRIES_REMAINING' Invalid online sessionid'ERR_INVALID_SESSION_ID' Exception occurred'
ERR_EXCEPTION'& Signature mismatch OF an api FUNCTION'ERR_SIGNATURE_MISMATCH' Version mismatch'ERR_VERSION_MISMATCH' TYPE mismatch'ERR_TYPE_MISMATCH' ID mismatch'ERR_ID_MISMATCH' Consistency error'ERR_NO_CONSISTENCY' No COMM_CYCLE needed'ERR_NO_COMM_CYCLE'' DO NOT suspend task after an exception'ERR_DONT_SUSPEND_TASK'* Memory cannot be locked in THIS operation'ERR_MEMORY_LOCK_FAILED' License missing FOR the runtime'ERR_LICENSE_MISSING' Operation denied'ERR_OPERATION_DENIED'
Device error'
ERR_DEVICE'
Disk full'
ERR_DISK_FULL' Internal use in runtime'ERR_CRC_FAILED'ERR_MEDIA_ERASE'T File error. e.g. cannot open a file FOR writing because it could be write PROTECTED'ERR_FILE_ERROR' No RETAIN memory available'ERR_NO_RETAIN_MEMORY'/ Specified minimum-limit of a resource exceeded'ERR_OUT_OF_LIMITS_MIN'/ Specified maximum-limit of a resource exceeded'ERR_OUT_OF_LIMITS_MAX' Size mismatch 'ERR_SIZE_MISMATCH'> Operation is not yet finished, call function again to proceed'ERR_CALL_AGAIN'+ Operation has nothing TO DO. No execution.'ERR_NOTHING_TO_DO' Some security checks have failed. THIS is a generic error code TO report THIS error over PUBLIC channels. In THIS CASE the error code doesn't provide a detailed cause for the error. */'ERR_SECURITY_CHECKS_FAILED'ERR_INVALID_SEQUENCE'f Dereferencing an IEC reference in IecVarAccess failed due to invalid destination address, e. G. NULL.'ERR_INVALID_REFERENCE'1 Conversion of string encodings was not lossless.'ERR_CONVERSION_INCOMPLETE' Socket not initialized 'ERR_SOCK_NOTINITIALIZED'& The provided socket handle is invalid'ERR_SOCK_NOTSOCKET'$ The address family is NOT supported'ERR_SOCK_AFUNSUPPORTED' Protocol is NOT supported'ERR_SOCK_PROTOUNSUPPORTED'( NOT enough buffer TO handle the request'ERR_SOCK_NOBUFFER'8 Socket is in nonblocking mode but THIS call would block'ERR_SOCK_WOULDBLOCK'' The provided address is already in use'ERR_SOCK_ADDRINUSE'7 The provided address is NOT available on THIS computer'ERR_SOCK_ADDRNOTAVAILABLE'/ Connection has been refused BY the remote host'ERR_SOCK_CONNREFUSED'ERR_SOCK_TIMEDOUT' The host has NOT been found'ERR_SOCK_HOSTNOTFOUND' Host is unreachable'ERR_SOCK_HOSTUNREACHABLE' Socket is already connected'ERR_SOCK_ISCONNECTED' The socket is NOT connected'ERR_SOCK_NOTCONNECTED'' Shutdown has been called on the socket'ERR_SOCK_SHUTDOWN'P FOR sockets OF TYPE DGRAM. The package TO send exceeds the maximum package size'ERR_SOCK_MSGSIZE'B Socket has been gracefully closed. No more send/receives allowed 'ERR_SOCK_CLOSED', Tag missing in online communication buffer 'ERR_L7_TAG_MISSING' Unknown command group'ERR_L7_UNKNOWNCMDGROUP'/ Unknown command (within a valid command group)'ERR_L7_UNKNOWNCMD' Level 7 service incomplete'ERR_L7_INCOMPLETE'# Certificate validation error codes'ERR_CERT_OK'B illegal error (FOR uninitialized values, TO avoid ERR_CERT_OK) */'"ERR_CERT_UNABLE_TO_GET_ISSUER_CERT'ERR_CERT_UNABLE_TO_GET_CRL')ERR_CERT_UNABLE_TO_DECRYPT_CERT_SIGNATURE'(ERR_CERT_UNABLE_TO_DECRYPT_CRL_SIGNATURE'+ERR_CERT_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY'ERR_CERT_SIGNATURE_FAILURE'ERR_CERT_CRL_SIGNATURE_FAILURE'ERR_CERT_NOT_YET_VALID'ERR_CERT_HAS_EXPIRED'ERR_CERT_CRL_NOT_YET_VALID'ERR_CERT_CRL_HAS_EXPIRED''ERR_CERT_ERROR_IN_CERT_NOT_BEFORE_FIELD'&ERR_CERT_ERROR_IN_CERT_NOT_AFTER_FIELD''ERR_CERT_ERROR_IN_CRL_LAST_UPDATE_FIELD''ERR_CERT_ERROR_IN_CRL_NEXT_UPDATE_FIELD'ERR_CERT_OUT_OF_MEM'$ERR_CERT_DEPTH_ZERO_SELF_SIGNED_CERT'"ERR_CERT_SELF_SIGNED_CERT_IN_CHAIN'*ERR_CERT_UNABLE_TO_GET_ISSUER_CERT_LOCALLY'(ERR_CERT_UNABLE_TO_VERIFY_LEAF_SIGNATURE(ERR_CERT_CHAIN_TOO_LONG(ERR_CERT_REVOKED(ERR_CERT_INVALID_CA(ERR_CERT_PATH_LENGTH_EXCEEDED(ERR_CERT_INVALID_PURPOSE(ERR_CERT_UNTRUSTED(ERR_CERT_REJECTED(7 These are 'informational' when looking for issuer cert( ERR_CERT_SUBJECT_ISSUER_MISMATCH(ERR_CERT_AKID_SKID_MISMATCH($ERR_CERT_AKID_ISSUER_SERIAL_MISMATCH(ERR_CERT_KEYUSAGE_NO_CERTSIGN(!ERR_CERT_UNABLE_TO_GET_CRL_ISSUER(%ERR_CERT_UNHANDLED_CRITICAL_EXTENSION(ERR_CERT_KEYUSAGE_NO_CRL_SIGN()ERR_CERT_UNHANDLED_CRITICAL_CRL_EXTENSION(ERR_CERT_INVALID_NON_CA(#ERR_CERT_PROXY_PATH_LENGTH_EXCEEDED(&ERR_CERT_KEYUSAGE_NO_DIGITAL_SIGNATURE('ERR_CERT_PROXY_CERTIFICATES_NOT_ALLOWED(ERR_CERT_INVALID_EXTENSION(!ERR_CERT_INVALID_POLICY_EXTENSION(ERR_CERT_NO_EXPLICIT_POLICY(ERR_CERT_DIFFERENT_CRL_SCOPE(&ERR_CERT_UNSUPPORTED_EXTENSION_FEATURE(ERR_CERT_UNNESTED_RESOURCE(ERR_CERT_PERMITTED_VIOLATION(ERR_CERT_EXCLUDED_VIOLATION(ERR_CERT_SUBTREE_MINMAX($ERR_CERT_UNSUPPORTED_CONSTRAINT_TYPE(&ERR_CERT_UNSUPPORTED_CONSTRAINT_SYNTAX( ERR_CERT_UNSUPPORTED_NAME_SYNTAX("ERR_CERT_CRL_PATH_VALIDATION_ERROR( The application is not happy(!ERR_CERT_APPLICATION_VERIFICATION(ERR_CERT_MISSING(ERR_CERT_UNKNOWN_ERROR($adcc37d5-f407-4f11-9834-0c31bac94657((cmperrors2 interfaces, 3.5.15.0 (system)(
1784674971(LogConstants(
STD_LOGGER(LOG_STD_LOGGER(Pointer(RTS_INVALID_HANDLE(LOG_INVALID_HANDLE($4084b11d-b9ee-47b9-ad20-f9bc4eeb6bb6(
1666259597(LogClass(LOG_NONE(LOG_INFO(LOG_WARNING( LOG_ERROR(
LOG_EXCEPTION( LOG_DEBUG(LOG_USER_NOTIFY(LOG_ALL($4daa954b-f889-4b97-a05f-93d44b64f374(
3164948391(LT_HIGHSPEED(LT_SAFE( LT_NORMAL(LT_TIMESTAMP_RTC(LT_TIMESTAMP_MS(LT_TIMESTAMP_US(LT_TIMESTAMP_NS(
LT_NO_DISABLE(
LT_DUMP_ASYNC(LT_DUMP_ALWAYS(LT_DUMP_ON_CLOSE(LT_DUMP_ON_REQUEST(Or($0f010cee-3948-41fd-82ad-af5b1e2e8803(49000( 251212993(HandleConstants(suppress_warning_0(C0195($471467d5-89a4-4482-b970-b13eff79244e(
1192820603(GlobalConstants(Common Defines($0c76e09e-5f6c-41d5-841a-2071be1c6304( 330479632(ComponentID(E ComponentID of the component manager, e.g. to specify for EventOpen (CMPID_CmpMgr(B ComponentID as a placeholder for all IEC components/applications (
CMPID_IecCode(CMPID_CmpFileTransfer($228db6b8-947d-4adb-8c50-8280abf93255('Typified, Compiled, ContainsNoParseTree(System.Byte( Relocated(ToCheck(ATopLevel, Typified, NotForUpToDate, Compiled, ContainsNoParseTree(7Typified, Compiled, ContainsNoParseTree, ContainsNoCode(StaticFunctionCall(1TopLevel, Typified, Compiled, ContainsNoParseTree(^TopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate, NoCompile(OTopLevel, Typified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(ETypified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(VirtualFunctionCall(
InterfaceCall(PTypified, ToCompile, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(0(ITypified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate(__DOWNLOAD__CODE(__ONLINE__CHANGE__CODE("__DATASEGMENTFLAGS__305__GVL__INIT(GTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, NoCompile(#__COMPILE_CONSTANTS__306__GVL__INIT(__WATCHVARS__307__GVL__INIT(1__ALLOCATEDIMPLICITREFERENCETYPES__308__GVL__INIT(#CONSTANTS__309__SYSTEM____GVL__INIT(TYPE_CLASS__614__GVL__INIT($_IMPLICIT_KINDOFTASK__688__GVL__INIT(/_IMPLICIT_TASK_CONFIG_VARIABLES__749__GVL__INIT(/_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__INIT(!__APPLICATIONNAME__138__GVL__INIT(%__TASKSPECIFICINFOGVL__139__GVL__INIT(__TYPECLASS__754__GVL__INIT(&__CONVERSION_CONSTANTS__759__GVL__INIT(HTypified, ToCompile, Compiled, ContainsNoParseTree, Generated, Blob, New('__LCONVERSION_CONSTANTS__840__GVL__INIT( __SETUP__CALL__POU__1__GVL__INIT(PRG_TEST__714__GVL__INIT(DToCompile, Compiled, DataRelocations, ContainsNoParseTree, ConstBlob)GLOBAL__INIT)