( V. Õö ¡2 signature_flag
4294967296''crc
3996477610CallTask__TaskFunction
RelativeStack+Output, IsCompiled, RelativeStack, Typified ptaskinfo _IMPLICIT_TASK_INFO
*Input, IsCompiled, RelativeStack, Typifiedpapplicationinfo_IMPLICIT_APPLICATION_INFO
Compiled, Typified, Located$64a6db1c-7d12-4620-af5a-df39cad9e5c1$00000000-0000-0000-0000-000000000000 131785522generate_implicit_init_function__Setup__Call__POUProgram$e4b9f5fc-afff-5a6c-96c4-74fa6fb0e1f8
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
2367094826pDoLinkq
int32__divr$16597b72-e6ca-4e3e-b487-0fab4f60f55ds
1538210473tuint32__divu$1acf0b76-2778-4975-844a-6ec15f762b2ev 997952827w
int32__modx$32f74310-0500-40a8-bcdc-38e3a235c1a5y
1194593076zuint32__mod{$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¡
stTaskName¢AnyInt£stApplicationName¤$8f58c4c2-6bd5-47c7-a149-8588821180e6¥
2641387053¦__sys__register__slot__pou§nSlotNumber¨dwFunctionPointer©$70da5b5d-fcb8-48d4-ac57-7c4cb04e2caaª
3903245801«__sys__unregister__slot__pou¬$9e4827e4-6b50-4e6a-bc7b-adeb6c4dd526
3363294660®SysCpuDebugHandler¯$d6a84056-f4d9-45ca-9a49-a66cec23e145°hide± ² 242570791³_Implicit_Application_Info´TypeµRelativeInstance¶''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)];
¸pParentApplication¹8Local, Structure, IsCompiled, RelativeInstance, Typifiedº pbyRights»guidCode¼guidData½udState¾ udOpState¿dwDoNotUse_0ÀdwDoNotUse_1ÁdwDoNotUse_2ÂdwDoNotUse_3ÃdwDoNotUse_4ÄdwDoNotUse_5ÅdwDoNotUse_6ÆbAppendBootprojectÇbPersistentForceÈdwPSVersionÉdwTargetSettingVersionÊFB_INITË
3526140261ÌMethodÍbInitRetainsÎbInCopyCodeÏ__INSTANCEPOINTERÐ4Input, IsCompiled, RelativeStack, Implicit, TypifiedÑ
__Index__0Ò2Local, IsCompiled, RelativeStack, NoInit, ImplicitÓ'NonVirtual, Compiled, Typified, LocatedÔ$ff589828-12c2-4e6a-9f0d-1d6dbb3264b6Õ__FB_PARTIALINITÖ
1565233622×2NonVirtual, Generated, Compiled, Typified, LocatedØ?Structure, NonVirtual, Compiled, SuperGlobal, Typified, LocatedÙ pack_modeÚ8Û
1691734129Üint64__to__any32Ý$e8c04d52-7d17-4965-9598-cb38a570750eÞ
2445978047ßany32__to__int64à$fbd44dd8-302c-4269-9682-4e63f10e32eeá 716714719âreal32__to__any64ã$4996aebf-7b1a-4606-9275-58c6595fe093ä
3713006940åany64__to__real32æ$fba8c26a-b719-4b40-ab2a-36a9440d345bç
2394705132è
int64__divé$5df34150-5072-488a-a457-a82fe4dddcafê
1872403673ëuint64__divì$c72c0ae2-f6fb-4752-9d81-65e25c2adeddí 953205245î
int64__modï$285230dc-fbd4-44eb-96d1-c35d9d1d95a4ð 593286487ñuint64__modò$7cf5a04d-a334-4d66-8458-aa41fd3d3cb4ó 113053312ôuint64__addõ$bd215293-9d5f-451b-8b34-fbf355380a1fö
3531041404÷
int64__addø$f853b3c3-030b-457f-9c6f-904c951d4c1bù
4246887690ú
int64__subû$b74d723c-4571-496b-9991-776c19eac243ü 924210632ýuint64__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Ä
3263826000Åuint64__rolÆ$d9ff9b48-8cb1-41b0-92d2-319173b767fcÇ
3062520787Èuint64__rorÉ$8292f004-04fa-4067-bf44-2dd2c43db842Ê
3322149652Ëuint64__shlÌ$4f5894be-5a41-4c9b-8659-e81c12575fc4Í
2986584215Îuint64__shrÏ$821a527f-8831-4a09-b5da-58ca3b768f66Ð
2726094904Ñ
uint64__limitÒ$26311cc1-5920-4260-9336-be3754cf23cfÓ
2206011875Ôint64__limitÕ$b3a15fa1-b9b4-4cad-91f6-3fd673edbae6Ö
1272716029×
int64__shrØ$427ca261-109e-4d61-a08b-24f6068e58daÙ 655075154Ú
get__ltimeÛ$aeaaf22a-a260-4bac-83d9-18ff949be644Ü
3183966539Ýreal32__to__real64Þ$9673b4f8-36d6-42ee-b5ca-e06e2602fab5ß
3519950284àreal64__to__real32á$68d11de2-a882-4f63-8e95-577fbe97dbefâ
2972115768ãreal64__to__any32ä$51322543-1fa0-4892-92ab-c1559ce724faå
2081721515æany32__to__real64ç$48ba7277-d0f9-4a61-8d0a-cfa10c9598a2è
3454954494é
real64__truncê$78aea275-8aff-407b-981c-8abf25d34255ë
3137264130ìreal64__taní$8ee3c317-6d75-4714-ab7c-ad187c5db2eeî
3753412847ïreal64__atanð$79d8c72b-fe9c-4bd0-8d79-62e93b3d01b9ñ 836685353òreal64__sinó$df65bfb9-6613-453b-b2b8-4fcb3789d916ô 352719585õreal64__asinö$dad7794c-0bfd-4662-adbc-f2c4e528d37b÷
3054655764øreal64__cosù$22fbcf03-320c-4e2b-83ce-a942e5631489ú 546799055ûreal64__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¡
1004225947¢real64__sub£$2fd9375a-655d-4573-bd00-1bcc1c494227¤
1979560122¥real64__mul¦$e2479120-cb69-43ba-87fa-98e33b5112c2§
1666681994¨real64__div©$a1c7ca2c-f191-46d4-a7f5-1504f1ba9eb8ª
1943489239«real64__abs¬$99947bf9-0e45-48b1-ad7f-8efb60cecd95
4275915668®real64__min¯$fb18f571-3f0d-4f1e-9a10-9bf219caed48°
3282809609±real64__max²$7b55e231-072f-4e70-a3f9-b4b1a98c1c66³
3952341867´
real64__limitµ$b701090f-8dde-42e6-b8fe-5f22597768ee¶ 960100917·real64__to__any64¸$d8153915-f13d-4be5-963e-2e0db8de9f44¹
1431364689ºany64__to__real64»$97dc91e6-edb3-4c35-be5d-6e444884a6ee¼
1535689152½__sys__rts__cycle__2¾ hTaskinfo¿$1230b333-5d6b-46b8-a973-900b5373db72À
1746117600Áexchange__and__addÂ$a39e5468-86fa-4e6d-affe-3e2e51db2150Ã
1630658070Ätest__and__setÅ$78879ef1-a378-4991-b06f-4f6324e3955fÆ
2102519854Çcompare__and__swapÈpAddressÉxwExpectedValueÊ
xwNewValueË$84b9de1a-938d-454b-a526-1c5121467a99Ì
2355386198Í __memcopyÎpDestÏpSrcÐdwSizeÑ$9d234cab-298b-4f80-8b06-238a4ecbdbf1Ò
1888671637Ó__stringcompareÔpStr1ÕpStr2Ö$9f5705df-d2f0-46b3-8c4d-6a4d6217fac6×
2923953018Ø__wstringcompareÙ$0bea6546-230e-4059-a0c6-574c96c9dcc9Ú 826746150Û__cycle__code__TaskÜ hTaskInfoÝ&Generated, Compiled, Typified, LocatedÞ$3749207f-5699-41f4-9804-8efcd5bde69bß 450027817àLogToDeviceápMessageâ$87fa260a-0206-486b-b1c7-ddcd71ec0182ãJbreakpoint logging functions, 3.5.5.0 (3s - smart software solutions gmbh)ä''DOCU__COMMENTåä 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]
æ
3222489690çAppendToStringè& Head part of the concatenated result éHEADê% Tail part of the concatenated resultëTAILìIntíindex1î*Local, IsCompiled, RelativeStack, TypifiedïindexRetð$2534de7b-0ca5-4f62-a5ca-98671b8c49e2ñregister_in_runtimeò
1073741824óM This function has been automatically generated from the project information.ô
1469785038õ
GetCompanyö$445d2084-07f9-535b-a7f3-344d40c93a36÷7sm3_basic, 4.5.1.0 (3s - smart software solutions gmbh)ø
1964895382ùGetNumberPropertyústKeyû$e295b6c9-ff6d-5381-bbee-773fd87d3204ü
1258494685ýGetTextPropertyþ$9e8e5459-88fe-5df2-ac9d-89f410214521ÿ43555609GetTextProperty2$8c17b05e-753b-53cb-bf48-4ed2a4d3062a
2163245402GetTitle$478d9b56-a0dd-5777-9b97-b6c17315dd5a
331523042VERSIONuiMajoruiMinor
uiServicePackuiPatch
3231598516$5181460b-9464-4c0f-82f2-1f9633a4c34e
1518820524
2092109079
GetVersion$2fb5a435-4d43-5674-b7e5-b5caa6f2922f
1521809942GetVersionProperty$b83afbb8-9370-57ec-8097-c83762f87191 138421936GetBooleanProperty$aea8ac5b-4806-5a31-a702-d9b7848973ce5sm3_cnc, 4.5.1.0 (3s - smart software solutions gmbh)
linkalways
1647294876__DataSegmentsnNumOfSegments
pDataSegments
__SEGMENTINFO
__SegmentInfo
4060142437 __DATASEGMENTS¡$6d5ee79a-0165-410b-9a03-2dcb86d77084¢
4207933064£2Structure, NonVirtual, Compiled, Typified, Located¤
1489859144¥displaymode¦hex§dsKindOf¨__DATASEGMENTFLAGS©uiAreaªudOffset«udSize¬udHighestUsedAddress 176517104®$86a3bd70-f6af-446c-a3ca-d70c9d74cefb¯ 224398676°
3195237607±__BasePropertyInfo²pVarAdr³ 930619704´__BASEPROPERTYINFOµ$31ba9dec-acd8-475d-b624-39b6068c7eaf¶ 461629027· 236822733¸__PropertyInfoStruct¹pGetterºpSetter» pInstance¼
4145388846½__PROPERTYINFOSTRUCT¾$85b65d0b-a93f-4e02-80e4-fafd3f54abc3¿
1714484629À
3751468166Á__POUInfoStruct dwCRCCodeÃdwCRCInterfaceÄudiNameStringIndexÅusiAreaCodeLocationÆusiAreaFPPointerLocationÇudiOffsetCodeLocationÈudiOffsetFPPointerLocationÉ 519335429Ê__POUINFOSTRUCTË$8467172f-0c66-4acf-9d6b-245b2445da14Ì
2202995516Í
2428029082Î__FBInfoStructÏdwCRCVFTableÐudiAreaVFTableLocationÑudiOffsetVFTableLocationÒ
1621815094Ó__FBINFOSTRUCTÔ$1964cd27-f960-4298-b539-cf555cb4552cÕ
2130618155Ö 901311032×__MethodInfoStructØudiParentPOUIndexÙ
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é 994902498êAnyTypeëpValueìdiSizeí TypeClassî
TYPE_CLASSï
3543456108ðANYTYPEñ$b60a5c90-aa6c-4c3f-8332-c02981c0bf59ò 696726884ó
2125849342ô__CodeLocationStructõudiCodeSizeö
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
1278195045
qualified_only
1554034293__CheckedInterfaceAssignInterfaceInput
correction$09818148-288b-4e68-aaac-88d3699e851b
4255647081
__memcmp__iecptr1ptr2i$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 812339439 new__real32__to__string¡ Area: 65535, Offset: 0x0 (0)¢index£pdw¤dw¥bSign¦decexponent§binexponent¨binmantissa©decmantissaªstrMantissaRaw«strMantissa¬pstrMantissanLen®
bFirstChar¯nNewExponent°nPointPosition±nIndexMantissaNew²bNan³bInf´ExponentµbNegExponent¶nTens·nOnes¸__CONVERSION_CONSTANTS¹FºAdr»PF¼Bool½bContainsPoint¾Byte¿CHAR_0ÀFLocal, ReplacedConstant, Constant, IsCompiled, RelativeStack, TypifiedÁ
CHAR_POINTÂ
CHAR_MINUSÃCHAR_EÄ$a891eece-ca29-4db8-b9cf-c1a855c9feacÅ
4263303623Æany64__to__stringÇdintHighÈudintLowÉ udintHighÊLWordËulDivÌulDigÍbFirstÎnDigitsÏnWidthÐcountÑ$3cce6ca9-0c61-42bf-9945-73fd93e91f59Ò 748513653Óreal64__to__stringÔszÕ pszSourceÖ
pszHelpSource×pszDestØDIntÙnSignÚiExp10ÛnExpSignÜbSÝdiEÞliMßxNanàxInfá$2a265c59-789e-4c94-a95e-f5f70529f084â__OffsetI_TESTRESULTFORMATTERãFORMATä
1989740091åI_TestResultFormatteræ Interfaceç
3382072716èFormaté The total amount of test suitesêAmountOfTestSuitesë5 The total amount of test cases (for all test suites)ìAmountOfTestCasesí? The total amount of test cases that had all ASSERTS successfulîAmountOfSuccessfulTestCasesïC The total amount of test cases that had at least one ASSERT failedðAmountOfFailedTestCasesñBusyòI_TESTRESULTFORMATTERó$033e8873-ad7a-489b-8ba9-f0de8a344939ô$fa75ee61-43fb-4767-8061-125a3a9e3424õcfunit, 0.9.1.0 (open source)öCompiled, Typified÷__GETINTERFACEPOINTERø__GETINTERFACEREFERENCEù__MAINú__VFINITû This function block reports the results from the tests using CmpLog functionality.
This sends the results into the DeviceLog
ü
2677203639ýFB_LogTestResultFormatterþ
FunctionBlockÿ__INTERFACEPOINTER__257None=Local, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy
Although we can print a message no #1 prior to message no #2, the message #2 can still be displayed before
message #1, most likely because of some delay. To workaround this, we add a small delay between each message.
In CfUnit, this delay has been removed.USIntLastPrintState
-Local, IsCompiled, RelativeInstance, Typified
PrintState__VFTABLEPOINTER
3298891267__GetInterfacePointerpRefFB_LOGTESTRESULTFORMATTER$d14d6247-3ce3-459f-be22-6ee3520279ed
1190260893
3685989275> The total amount of test cases (for all test function blocks) ErrorCode$dba8c729-8b99-4be3-97cd-3a4fea4cd051
2457848138 486230573__GetInterfaceReferencenInterfaceId
2121478464
2899725525I_TestResultFormatter__Union__Interface5Local, Structure, IsCompiled, RelativeInstance, Union__vfTablePointer?Local, Structure, IsCompiled, RelativeInstance, Union, Typified
1286751965!Output, IsCompiled, RelativeStack Input, IsCompiled, RelativeStack I_TESTRESULTFORMATTER__UNION¡*Input, IsCompiled, RelativeStack, Implicit¢NonVirtual, Compiled, Located£\Structure, NonVirtual, Generated, Union, ImplicitInterfaceUnion, Compiled, Typified, Located¤RUNTESTSUITETESTS¥Y This function block is responsible for holding track of the tests and executing them.
¦ 707407959§FB_CfUnitRunner¨M Inidication of whether all test suites have reported that they are finished ©AllTestSuitesFinishedª3 Prints the results to Log to display the results. «LogTestResultFormatter¬TestResultPrinterG These variables (statistics) are occupied once all tests are complete ®UInt¯AmountOfTestSuitesFinished°= Indication of that the printing of test results is complete ±DonePrintingTestResults²
3420340229³FB_CFUNITRUNNER´$857e16d6-a26c-468a-935e-aa7317c263b9µ
3778827230¶
4269434566· 398340060¸
1236638042¹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 ½AmountOfTestSuitesFinished_Temp¾AmountOfTestCases_Temp¿AmountOfFailedTestCases_TempÀ AmountOfSuccessfulTestCases_TempÁ$d333e6c4-a1da-4b5b-91b3-4b4808e6c299Â 530014754Ã
external_nameÄ Task_InfoÅ
m4export_hideÆ 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 counterðdwCycleCountñ( [s] Task state. See category TaskState.òiStateó3 [s] Number jitter statistical distribution entriesôwNumOfJitterDistributionsõ, [s] Statistical jitter distribution entriesöpJitterDistribution÷JITTER_DISTRIBUTIONøJitter_Distributionù [s] Timeslicing enabledúbTimeSlicingûbyDummyüwDummyý- [s] Cycle counter for execution of user codeþdwIECCycleCountÿ
2750948561
TASK_INFO2$a1e9fbd6-93bf-46b3-bfe6-3b3118b8971acmpiectask, 3.5.14.0 (system)) reads the taskinfo from the current task 380229896
GetCurTaskInfopCurTask
CMPIECTASK
CmpIecTaskRTS_IEC_HANDLEpResultpCurTaskInfoCurTaskInfo.Output, IsCompiled, RelativeInstance, Typified
4105761433GETCURTASKINFO$21adb24c-373e-4435-8059-bba210563e99
2413748294
1915908239
4214002233
2906446323GETNAMEISFAILED
ISFINISHED SETFAILEDSETFINISHEDSETNAME; This function block holds all data that defines a test.
197467033FB_TestTestNameT_MAXSTRING T_MaxString¡C Indication of whether this test has had at least one failed assert¢
TestHasFailed£TestHasFinished¤
2582292532¥
IsFinished¦FB_TEST§$813a9067-b864-4739-9c14-830160e0eabc¨$a51e9086-33ec-4162-acad-93a76961e893©
3079764566ª 423273558«
2594211687¬
3881623904
3180690025®SetName¯Name°$4c12f6eb-bbe4-4872-ac89-4411e2e81414±
3873235943² SetFailed³$b840b41b-4045-4fd9-b97d-0bf226c46fb3´
1977553996µIsFailed¶$e42409e3-251f-4133-8b14-3630785983d6·
2103648522¸
1314032143¹GetNameº$94757f0e-9979-49d0-ad9f-e35c823175d4»
3133059768¼SetFinished½$e1245d1c-be22-4d60-bc91-fe0262827234¾Á 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]
¿hide_all_localsÀ 754564685ÁR_TRIGÂ Boolean signal to be checkedÃCLKÄ-Input, IsCompiled, RelativeInstance, TypifiedÅ ``TRUE``: Rising edge detectedÆQÇMÈ
3552750443É$752f4be3-bcd1-4b9f-8c29-de66d869ade4Ê
2057466445Ë
2279655128Ì 725723096Í
2849467804Îstandard, 3.5.14.0 (system)Ï 227646264ÐU_ExpectedOrActualÑboolExpectedOrActualÒbitExpectedOrActualÓbyteExpectedOrActualÔdwordExpectedOrActualÕlwordExpectedOrActualÖstringExpectedOrActual×udintExpectedOrActualØuintExpectedOrActualÙusintExpectedOrActualÚsintExpectedOrActualÛintExpectedOrActualÜwordExpectedOrActualÝdintExpectedOrActualÞlintExpectedOrActualßulintExpectedOrActualàrealExpectedOrActualálrealExpectedOrActualâwstringExpectedOrActualãtimeExpectedOrActualältimeExpectedOrActualådateExpectedOrActualædateandtimeExpectedOrActualçtimeofdayExpectedOrActualè25436326éU_EXPECTEDORACTUALê$539c30a7-a560-469c-8422-aaf8c09f45d9ë9Structure, NonVirtual, Union, Compiled, Typified, Locatedì
2825047456íST_AssertResultîExpectedïActualðMessageñTestInstancePathò
1612349127óST_ASSERTRESULTô$63e20a3e-c451-4aff-a3c2-cc9b3a584290õ
1583981908öST_AssertResultInstances÷AssertResultø* Amount of instances of the "AssertResult"ùDetectionCountúD Amount of instance of the "AssertResult" in this specific PLC-cycleûDetectionCountThisCycleü93536004ýST_ASSERTRESULTINSTANCESþ$018c91ab-7038-42ef-b6e4-5007ea06204fÿADDASSERTRESULT3COPYDETECTIONCOUNTANDRESETDETECTIONCOUNTINTHISCYCLECREATEASSERTRESULTINSTANCEGETDETECTIONCOUNTGETDETECTIONCOUNTTHISCYCLE$INCREASEDETECTIONCOUNTTHISCYCLEBYONE
REPORTRESULTý 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 amount of instances of each of the "AssertResults"
AssertResultsGVL_PARAM_CFUNITGVL_Param_CfUnitMaxAmountOfAsserts# The total amount of unique assertsTotalAsserts- Function block to get the current task cycleGetCurrentTaskIndex= The total amount of instances of each of the "AssertResults"AssertResultInstances The last PLC cycle count
CycleCount Only run first cycleFirstCycleExecuted
1249903082FB_ASSERTRESULTSTATIC$9683a633-879e-475e-a97f-0742f9ecfd04 692841312
1389387818
23729146033CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounter $Compiled, Typified, Located, Private¡$a8cc95e0-191e-40c8-a6bc-8d58d9231bfa¢
hasanytype£ 324331413¤$IncreaseDetectionCountThisCycleByOne¥uselocation¦Expected.pValue§Expected__pValue¨2Local, IsCompiled, RelativeStack, NoInit, Typified©Expected.TypeClassªExpected__typeClass«Expected.diSize¬Expected__sizeOfanytypeclass®ANY¯
Actual.pValue°Actual__pValue±Actual.TypeClass²Actual__typeClass³
Actual.diSize´Actual__sizeOfµ$b4a5f59b-b092-46e9-a592-20ecca6c06c9¶
1534235042·
1576367466¸ 875312424¹CreateAssertResultInstanceº$0e48fb23-038c-40ed-90ff-ee834be2653d»
4040583768¼GetDetectionCountThisCycle½$9f89a925-0785-44b9-83cb-36f87d5bc546¾
1863076118¿GetDetectionCountÀ$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.
Â
2144796275ÃReportResultÄAlreadyReportedÅ
LocationIndexÆDataTypesNotEqualsÇDataSizeNotEqualsÈDataContentNotEqualsÉCurrentCycleCountÊDetectionCountTempËFoundOneÌAdditionalIdenticalAssertÍ$675e4dfe-54f1-4dc0-a6fd-481bc63973c5Î
3239381763ÏAddAssertResultÐ$22afb213-95b2-4bfd-ada6-e7cf020d9c1dÑ
3525697315ÒST_AssertArrayResultÓ% Size in bytes of the expecteds-arrayÔ
ExpectedsSizeÕ% The data type of the expecteds-arrayÖExpectedsTypeClass× TYPECLASSØ# Size in bytes of the actuals-arrayÙActualsSizeÚ# The data type of the actuals-arrayÛActualsTypeClassÜ
2307666740ÝST_ASSERTARRAYRESULTÞ$a97be192-7eab-4934-bf94-f1c1e71902f6ß
1707683493àST_AssertArrayResultInstancesáAssertArrayResultâ/ Amount of instances of the "AssertArrayResult"ãI Amount of instance of the "AssertArrayResult" in this specific PLC-cycleä
2861258322åST_ASSERTARRAYRESULTINSTANCESæ$32c33d09-e3c1-4756-8559-edad569b31f5çADDASSERTARRAYRESULTèï 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)
é 285741936êFB_AssertArrayResultStaticëC The total amount of instances of each of the "AssertArrayResults" ìAssertArrayResultsí$ The total amount of unique asserts îTotalArrayAssertsï. Function block to get the current task cycle ðAssertArrayResultInstancesñ The last PLC cycle count ò Only run first cycle ó
3879263428ôFB_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
1114810495 AddAssertArrayResult $60d61a50-adb0-4323-b700-3d64bcdd7ef0 __OffsetI_ASSERTMESSAGEFORMATTER LOGASSERTFAILURE 355528328 I_AssertMessageFormatter
4291550583 LogAssertFailure I_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.
856032233 FB_LogAssertMessageFormatter __INTERFACEPOINTER__437
3082900915 FB_LOGASSERTMESSAGEFORMATTER $54911d7d-b4a4-43a8-a981-a2fc14a13f71
1702637047
3821178837 498102394
2988799914 ,AdjustAssertFailureMessageToMax252CharLength /FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTH /FB_AdjustAssertFailureMessageToMax252CharLength¡ TestInstancePathCleaned¢ TestInstancePathFinal£ ReturnValue¤ TestInstancePathProcessed¥ MessageProcessed¦ $48cbc6b0-5380-44b8-a045-57b6ad9f189d§
4086985287¨ 694510288© I_AssertMessageFormatter__Unionª
1092183428« I_ASSERTMESSAGEFORMATTER__UNION¬ ADDTEST ADDTESTNAMETOINSTANCEPATH® ALLTESTSFINISHED¯ ASSERTARRAY2DEQUALS_LREAL° ASSERTARRAY2DEQUALS_REAL± ASSERTARRAY3DEQUALS_LREAL² ASSERTARRAY3DEQUALS_REAL³ ASSERTARRAYEQUALS_BOOL´ ASSERTARRAYEQUALS_BYTEµ ASSERTARRAYEQUALS_DINT¶ ASSERTARRAYEQUALS_DWORD· ASSERTARRAYEQUALS_INT¸ ASSERTARRAYEQUALS_LINT¹ ASSERTARRAYEQUALS_LREALº ASSERTARRAYEQUALS_LWORD» ASSERTARRAYEQUALS_REAL¼ ASSERTARRAYEQUALS_SINT½ ASSERTARRAYEQUALS_UDINT¾ ASSERTARRAYEQUALS_UINT¿ ASSERTARRAYEQUALS_ULINTÀ ASSERTARRAYEQUALS_USINTÁ ASSERTARRAYEQUALS_WORDÂ ASSERTEQUALSÃ ASSERTEQUALS_BOOLÄ ASSERTEQUALS_BYTEÅ ASSERTEQUALS_DATEÆ ASSERTEQUALS_DATE_AND_TIMEÇ ASSERTEQUALS_DINTÈ ASSERTEQUALS_DWORDÉ ASSERTEQUALS_INTÊ ASSERTEQUALS_LINTË ASSERTEQUALS_LREALÌ ASSERTEQUALS_LTIMEÍ ASSERTEQUALS_LWORDÎ ASSERTEQUALS_REALÏ ASSERTEQUALS_SINTÐ ASSERTEQUALS_STRINGÑ ASSERTEQUALS_TIMEÒ ASSERTEQUALS_TIME_OF_DAYÓ ASSERTEQUALS_UDINTÔ ASSERTEQUALS_UINTÕ ASSERTEQUALS_ULINTÖ ASSERTEQUALS_USINT× ASSERTEQUALS_WORDØ ASSERTFALSEÙ
ASSERTTRUEÚ FINDTESTSUITEINSTANCEPATHÛ GETAMOUNTOFFAILEDTESTSÜ GETAMOUNTOFSUCCESSFULTESTSÝ GETAMOUNTOFTESTSÞ GETINSTANCEPATHß
SETTESTFAILEDà SETTESTFINISHEDá call_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.
ä
2043484281å FB_TestSuiteæ
instance-pathç noinitè InstancePathé 5Local, 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 ë
NumberOfTestsì Testsí MaxAmountOfTestsForEachTestSuiteî 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 ó LogAssertMessageFormatterô AssertMessageFormatterõ 902185581ö FB_TESTSUITE÷ $f80c23f2-119d-406b-ae11-06d1991bf64dø ¼ 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
<insert positive test2 here>
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
<insert failing test1 here>
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
<insert failing test2 here>
TEST_FINISHED();ù
2739881928ú AssertArray3dEquals_LREALû $ LREAL 3d array with expected valuesü variable_length_arrayý
Dimensionsþ 3ÿ Expecteds
" LREAL 3d array with actual values
Actuals
¤ 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
Delta
0 The identifying message for the assertion error
Equals
SizeEquals
ExpectedString
ActualString
& Index when looping through Dimensions
DimensionIndex
2 Lower bounds of Expecteds array in each dimension
LowerBoundExpecteds
2 Upper bounds of Expecteds array in each dimension
UpperBoundExpecteds
0 Lower bounds of Actuals array in each dimension
LowerBoundActuals
0 Upper bounds of Actuals array in each dimension
UpperBoundActuals
* Size of Expecteds array in each dimension
SizeOfExpecteds
( Size of Actuals array in each dimension
SizeOfActuals
? Current Array index offsets from Lower Bound in each dimension
Offset
D Array of current Expected array indexes when looping through arrays
ExpectedArrayIndex
B Array of current Actual array indexes when looping through arrays
ActualArrayIndex
Single expected value
Single actual value
implicit_input
Expecteds__Array__Info¡
__ARRAY__DIM__INFO¢
Actuals__Array__Info£
$251da4d5-4df8-4eed-b154-a479323eb0d5¤
ð | 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();¥
741724600¦
AssertEquals_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();«
2964612237¬
AssertArrayEquals_WORD
WORD array with expected values®
1¯
WORD array with actual values°
Index±
ExpectedDWordString²
ActualDWordString³
ExpectedsIndex´
ActualsIndexµ
$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(); ·
3117031323¸
AssertEquals_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();½
1533126720¾
AssertEquals_ULINT¿
ULINT expected valueÀ
ULINT actual valueÁ
$6f1e7566-33c3-4f9c-b92d-7828feb26211Â
| 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();Ã
1814216526Ä
AssertTrueÅ
Condition to be checkedÆ
ConditionÇ
$c415013c-c271-42ba-83ad-6c2c653d8f2eÈ
3257275533É
GetAmountOfFailedTestsÊ
FailedTestsCountË
$12e4522b-e67f-439a-af1d-8713231888aaÌ
| 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();Í
3366653025Î
AssertArrayEquals_BYTEÏ
BYTE array with expected valuesÐ
BYTE array with actual valuesÑ
ExpectedByteStringÒ
ActualByteStringÓ
$375a5287-a3e9-4833-ac17-bab8f3f0fdc9Ô
3352982536Õ
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();Ø
845481049Ù
AssertEquals_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();Þ
1925503454ß
AssertArrayEquals_ULINTà
! ULINT array with expected valuesá
ULINT array with actual valuesâ
$916529a0-57b3-4947-a5b8-e7b9ff17f35fã
171176124ä
| 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();å
1613096602æ
AssertEquals_LINTç
LINT expected valueè
LINT actual valueé
$9dc34017-cbc7-41a9-83a2-941f39cc7271ê
3103726108ë
| 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();ì
2234915396í
AssertEqualsî
Expected valueï
$ The value to check against expectedð
Countñ
ExpectedDataStringò
ActualDataStringó
AnyComparatorô
FB_ANYCOMPARATORõ
FB_AnyComparatorö
boolExpected÷
boolActualø
byteExpectedù
byteActualú
dateExpectedû
dateActualü
dateAndTimeExpectedý
dateAndTimeActualþ
dintExpectedÿ
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();¢ 420776148£AssertEquals_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();¨
2519788779©AssertEquals_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();®
1001631274¯AssertArrayEquals_DINT° DINT array with expected values± DINT array with actual values²$4f0d9b20-0c78-467d-a52a-6badbd5d37cc³ | 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(); ´
4213307678µAssertEquals_LREAL¶ LREAL expected value· LREAL actual value¸v The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal¹$205d107c-0a2d-44f7-b68a-eb06720b6a6bº¹ 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
<insert positive test2 here>
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
<insert failing test1 here>
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
<insert failing test2 here>
TEST_FINISHED();»
3532111388¼AssertArray3dEquals_REAL½# REAL 3d array with expected values¾! REAL 3d array with actual values¿$0dc8fccf-4b9a-4206-8d9f-212f576edb04ÀÑ | 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();Á
2334199940ÂAssertArrayEquals_USINTÃ! USINT array with expected valuesÄ USINT array with actual valuesÅ$b3215098-2f26-48bf-a7e4-ee1a0803a968Æ
3498222671ÇAddTestNameToInstancePathÈCompleteTestInstancePathÉ$abecfe2f-b0e2-4118-a1c6-bb248556b776Ê= Searches for the instance path of the calling function blockË
2007265447ÌFindTestSuiteInstancePathÍ$e69a4510-81a2-4d65-94e4-52c06ac49944ι 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
<insert positive test2 here>
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
<insert failing test1 here>
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
<insert failing test2 here>
TEST_FINISHED();Ï
2086273169ÐAssertArray2dEquals_REALÑ# REAL 2d array with expected valuesÒ2Ó! REAL 2d array with actual valuesÔ$dc3b5666-7b5a-49ae-9837-cbb9bedd911aÕé | 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();Ö
3654937006×AssertEquals_INTØ INT expected valueÙ INT actual valueÚ$7c61106e-9bcd-4577-a949-ab96d8862e41Û
4288444846ÜGetAmountOfSuccessfulTestsÝ$635213dc-96ca-4be6-9c0d-c0454c29d34dÞ¤ | 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(); ß
1846796480àAssertEquals_DATEá DATE expected valueâ DATE actual valueã$1645ab79-f969-41aa-a170-f589a5757e7fäé | 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();å
2728596166æAssertEquals_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();ë
3329528385ìAssertEquals_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();ñ
2897700765òAssertEquals_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();÷ 687092469øAssertArrayEquals_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();ý
2310054264þAssertEquals_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(); 113999760AssertEquals_DATE_AND_TIME
DATE_AND_TIME expected value DATE_AND_TIME actual value$42befc01-2199-49e2-b7ef-cf909b8890f9 633676930AssertArrayEquals_LREAL! LREAL array with expected values LREAL array with actual values$fbc23ff0-cdf6-43f2-82cd-e6f3a7903664 | 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();
1371371786AssertEquals_DWORD DWORD expected value DWORD actual value$3ce6ba77-0ab2-46fc-a7c9-978b376b93be
3629326530FB_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(); 398443318AssertEquals_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();
2700899206 AssertArrayEquals_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();¥
3834307937¦AssertArrayEquals_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(); «73141978¬AssertFalse$022665a8-9003-4aaa-8ef4-bd39fe196883®È
| 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();¯
1590775622°AssertArrayEquals_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();
µ
4016979687¶AssertArrayEquals_LWORD·! LWORD array with expected values¸ LWORD array with actual values¹$7bc0c786-fccc-46e3-b38f-2013c44bfcb0º÷ | 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(); »
2072876926¼AssertEquals_UINT½ UINT expected value¾ UINT actual value¿$86b960b9-ebc0-46af-91ed-94a423f501dcÀ¼ | 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();Á
2863501046ÂAssertEquals_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
<insert positive test2 here>
TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
<insert failing test1 here>
TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
<insert failing test2 here>
TEST_FINISHED();Ç
4068978934ÈAssertArray2dEquals_LREALÉ$ LREAL 2d array with expected valuesÊ" LREAL 2d array with actual valuesË$964c2fec-9de7-47ae-bee4-23c559ae4a3fÌ
2400552134ÍGetAmountOfTestsÎ$6f67c6d5-c29e-4577-8651-51bd6db3ab63Ï | 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();Ð
2882148535ÑAssertArrayEquals_BOOLÒ BOOL array with expected valuesÓ BOOL array with actual valuesÔ$3d4059ab-c241-4859-9a9f-090cab6db606Õ
3891127203ÖAddTest×ErrorMessageØFunctionCallResultÙTestWithThisNameAlreadyExistsÚLowerCasedTestNameÛTrimmedTestNameÜ$d383011f-6bea-4b05-9018-ea4782ad2837Ý
1810088230ÞAssertArrayEquals_REALß REAL array with expected valuesà REAL array with actual valuesá$c42ec40e-0859-4258-a3b2-11b258dab324â
| 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();ã
3815237450äAssertArrayEquals_DWORDå! DWORD array with expected valuesæ DWORD array with actual valuesç$eec9d02d-95a1-4885-9906-ad4b2d0f4cabè
1577461429éö | 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();ê
1867854019ëAssertEquals_BYTEì BYTE expected valueí BYTE actual valueî$c039f3f1-9c41-4f5e-93a3-393ce160979aï
3050453849ðAllTestsFinishedñ$2b211901-49a8-4e51-90e1-4b1e298f9e0cò 594487417óGetInstancePathô$178fa338-5ed3-417b-8f4d-e9f120ace4b9õ
2638420974öSetTestFinished÷$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();ù
2061975295úAssertArrayEquals_UINTû UINT array with expected valuesü UINT array with actual valuesý$358571ac-0a0d-4e71-8097-c7943f718fceþï | 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();ÿ
3522167796
AssertEquals_SINT
SINT expected value
SINT actual value
$10052dfe-cfcb-4a5a-aa97-151e272ce217
2671643726
Alias, IsCompiled, Typified
Alias, Compiled, Typified
$a429e267-db3b-4872-871e-1ca509b971e2
1774802008
$1f187897-1eca-4745-9dd7-6e656076701f
&systypes2 interfaces, 3.5.4.0 (system)
Jitter distribution
3779252147
Maximal range
wRangeMax
Jitters events negative
wCountJitterNeg
Jitter event positive
wCountJitterPos
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 path
MsgFmtString
Test message
StringArg
MsgFmtStringProcessed
StringArgProcessed
MsgFmtStringTemp
String
...TestName too long
TestNameTooLong¡
...TestMsg too long¢
TestMsgTooLong£
X This is actually 253, but if StrArg-argument is used (which it is in TcUnit) it is 252.¤
'MSG_FMT_STRING_MAX_AMOUNT_OF_CHARACTERS¥
ILocal, ReplacedConstant, Constant, IsCompiled, RelativeInstance, Typified¦
228984903§
$d7648cea-fb9f-427f-b157-93784e5b7cab¨
3505840675©
197406720ª
2734844869«
3297551346¬
2662650258
diLower®
diUpper¯
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.
³
797308994´
AnyValueOne.pValueµ
AnyValueOne__pValue¶
AnyValueOne.TypeClass·
AnyValueOne__typeClass¸
AnyValueOne.diSize¹
AnyValueOne__sizeOfº
AnyValueOne»
AnyValueTwo.pValue¼
AnyValueTwo__pValue½
AnyValueTwo.TypeClass¾
AnyValueTwo__typeClass¿
AnyValueTwo.diSizeÀ
AnyValueTwo__sizeOfÁ
AnyValueTwoÂ
< 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Ç
3901074272È
11252403É
173265148Ê
958090425Ë
__GETBUFFERSIZEÌ
__GETLENGTHÍ
__SETAPPENDÎ
__SETLENGTHÏ
COPYÐ
CUTOFFÑ
FINDÒ
FINDBACKÓ
SETÔ
Q
This functionblock acts as an IO stream buffer for use with FB_XmlControl
Õ
3380907502Ö
FB_StringBuffer×
pStringØ
udiLengthÙ
udiSizeOfÚ
propertyÛ
setÜ
Appends a string to the bufferÝ
message_guidÞ
$1420d8a5-f130-452c-8825-a3f354a987ecß
Appendà
getá
Read current Buffersizeâ
$68afd1a2-de65-4e12-b73f-fea349e03e95ã
BufferSizeä
$4091adec-4bb4-4fd6-8526-9c7c148f5fb6å
Lengthæ
3044084225ç
CutOffè
udiStartPosé
udiCutLenê
XmlErrorë
E_XMLERRORì
iLoopí
pByteCutî
pByteBufferï
FB_STRINGBUFFERð
$c6a3de4e-6324-4b78-aaa1-8f0f469c3e8añ
$e52f4441-8a0a-4101-967b-b7eab2a848a9ò
Find a searchstring in the buffer and returns its position.
It's possible to add a preffered startposition within buffer
ó
817594632ô
Findõ
sSearchStringö
udiLoop÷
iSearchø
pBufferù
pSearchú
$005c59da-78f6-44f5-992f-5ed00155aa65û
3946453572ü
FindBacký
udiSearchþ
$9839d1e8-50a3-46d6-bcc3-683d35336c78ÿ
Sets the Buffer
2195020359Set Set buffer adress (ADR ...)pbyAdr Set buffer size (SIZEOF ...)
udiSize$4febb494-7fac-41a4-adad-f24be4f91872
1318540506 244166695__getLength$68d61c18-5880-4fca-bc19-2627561e031b1
Copies a string from the character buffer
3779162972CopyudiStartudiEnd
udiCopyLen pByteCopy$2c390f42-4281-4b36-9491-cb075b58b84f 915874502
2096635386__setLength$771e0e96-6938-4002-9e95-f5464d90932a
1451408511__getBufferSize$50c00d93-002d-4d51-b127-116588bc6b70
3164512357
1039761658
1421433567
1880372656__setAppendpByteIn $0b19b506-e9b9-4278-a6d8-4293484e7c2a¡CLEARBUFFER¢CLOSETAG£
NEWCOMMENT¤NEWPARAMETER¥NEWTAG¦
NEWTAGDATA§
NEXTPARAMETER¨NEXTTAG© SETBUFFERª
TOSTARTBUFFER«WRITEDOCUMENTHEADER¬Ý
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 CHAR;
END_VAR
XML.pBuffer: = ADR (buffer);
XML.LenBuffer: = SIZEOF (buffer);
Add your own preferred fileheader like:
XML: <?xml version=\"1.0\" encoding=\"UTF-8\"?>
XML.WriteDocumentHeader( '<?xml version=\"1.0\" encoding=\"UTF-8\"?>');
2. Compose a tag with a parameters:
XML: <MyTag ParaName = "11" />
XML.newTag(sTagName: = 'MyTag');
XML.newPara(sName: = 'ParaName', sPara: = sValue);
XML.CloseTag();
3. Add tag value:
XML: <MyTag> 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: <!-- MyComment -->
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)
602734887®
FB_XmlControl¯Buffer°TagList±sTags²TagListSeek³ sTagsSeek´TagµsTag¶xTagOpen·iSelect¸iSelectStart¹
iSelectEndºiSelectStartPara»iSelectEndPara¼iSelectTagClose½iSelectStartValue¾iSelectEndValue¿udiSearchPosÀ<ÁTAG_OPENÂ7Local, Constant, IsCompiled, RelativeInstance, TypifiedÃ>Ä TAG_CLOSEÅ/>
Æ
END_TAG_CLOSEÇ ÈSPACEÉ=ÊEQUALSË"ÌQUOTEÍ\Î
BACK_SLASHÏ/Ð
FORWARD_SLASHÑ<!-- ÒOPEN_COMMENTÓ -->Ô
CLOSE_COMMENTÕ$4fdf30b6-5fe7-4452-ad0a-85e866e236d0Öm
Must be called after opening a new tag
XML.NewParameter(Name: = 'ParaName', Value: = 'Value');
× 921326128ØNewParameterÙValueÚ
FB_XMLCONTROLÛ$60c10606-ff09-4f9b-a3dd-0b54d0f565c7Ü$f48b7de2-5c07-4763-a8be-3d8ab3c1f58cÝ
1480213951ÞH
Closes a Tag:
XML: <MyTag />
Method: XML.CloseTag();
ß 562036203àCloseTagá$eedd2aac-2425-4325-8128-bfe1e984f3f7âP
Creates a new Tag:
XML: <MyTag>
XML.NewTag(Name: = 'MyTag');
ã
3334231889äNewTagå$c44bdbda-725a-4943-a5cc-fa5ea9485541æ 658386211ç 202570919èNextTagé$d039b781-905d-4b69-b5aa-bb0323e598deê
4266376561ë
NextParameterì Parameterí$4394d0a2-f7bc-4847-9625-00022c462a79î´
Add your own preffered fileheader like:
XML: <?xml version=\"1.0\" encoding=\"UTF-8\"?>
XML.WriteDocumentHeader('<?xml version=\"1.0\" encoding=\"UTF-8\"?>');
ï 424089131ðWriteDocumentHeaderñHeaderò$14bf2549-9e7d-451f-8ab5-fe662eb30712óc
Adds a comment;
XML: <!-- MyComment -->
XML.NewComment(Comment: = 'MyComment');
ô 546130022õ
NewCommentöComment÷$0f41fa45-b92e-4e7e-b2b3-ecb5d5918326ø 956221524ù$267105d4-b124-4c5c-a359-0434c4992afcú
2490628950û
3925419184ü
3665343355ý
NewTagDataþDataÿ$e4679d3f-10eb-47fd-936c-97e3aaaa3768
3659702301 SetBufferiSizeOf$cbfaa6d5-eab9-48d0-a339-a8bf334e344e1
Clears the contents of the entire buffer
240981288ClearBuffer$651b4460-232e-47e8-95ba-ecea1541fbb9G
Jump to the beginning of the XML data
XML.ToStartBuffer();
4253228143
ToStartBuffer$cb065068-a6c8-48d5-8c1d-535a21365348
3133643262CLOSEOPENREADSAVE
1695361983FB_FileControlACCESS_MODESYSFILESysFile
AM_WRITE_PLUSFileAccessMode
FileHandleSYSTYPESSysTypes
2535989555FB_FILECONTROL$92b054f5-6c17-4a97-bba0-430785a7dda3
1889971345
2355446001
3308839526¡Read¢RTS_IEC_RESULT£ Call with ADR();¤ Call with SIZEOF(); ¥Size¦FileSize§RTS_IEC_SIZE¨$f93ea44f-4d8d-464c-9dd2-7b8491d1d0cf© Closes the current fileª
4214760544«Close¬$9e59e2f2-4c01-4eef-a03e-ca6cece47c41
2474451454®\ Saves the contents of the buffer into a file
Be sure to call Open() before calling Save()¯
2206094130°Save± Call with SIZEOF();²$2f313ee5-51e4-4400-81ec-246d44b99c29³
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º$edeba3e3-eab7-4baf-8c37-097da76a12ae» 527503827¼
3634529286½FB_jUnitXmlWriter¾Xml¿GVL_PARAM_XMLCONTROLÀGVL_Param_XmlControlÁMaxFileSizeÂBufferSizeChangeÃFileÄ
2208479216ÅFB_JUNITXMLWRITERÆ$a78295b3-d56b-4cd3-b3eb-fb9ed18a63feÇ
3675480125È
2094096280É
1172147931Ê
3478665142Ë
3827756189Ì$5de0d991-1359-4458-ba16-a7e779ed9ddcÍ 161063444Î$fc07005b-6ac8-404d-b2cd-f68d25f42f8eÏCONFDYNLICCHALLENGEÐDEMOMODEEXPIREDÑDEMOMODESTARTEDÒFB_EXITÓGENERATEEXCEPTIONÔGETCODEMETERLICENSEVALUEÕGETDEMOLICENSEÖGETLICENSEVALUE×GETLICENSEVALUEBITØGETPURELICENSEVALUEÙGETUSERLICENSEVALUEÚLICENSEMISSINGÛLOGERRORMESSAGEÜREADLICENSEFILEÝREQDYNLICCHALLENGEÞSTORELICENSEßUDINTVALUEOFLINEàVALUEOFLINEál This FB manages the access to license values.
There is one global instance of it with the name ``g_olm``.â
1762817067ãOLM_OnlineLicenseManagerä_hFileå
_udiTargetæ_udiTypeç_udiCPUè_udiOSé_abyFileContentêgc_uiMaxFileSizeë_uiFileSizeì
_xFileReadí_uiStoredLicensesî_udiDynLicReqIDï_udiDynLicReqValueð_udiDynLicChallengeñ
_xDemoMessageò
_semaStoreó_adwLicensesStoredôgc_uiMaxStoredLicõ
3309119800öOLM_ONLINELICENSEMANAGER÷
__Index__1ø$85fe17fb-708c-43f1-921d-b15ce3e6d622ù
1174879541úReadLicenseFileûresüuxiSizeý udiTargetþ
udiTargetMASKÿudiTypeudiCPUudiOSpsSerialpdi
uiCheckSum
abyGenbOnlineLicenseManagerstComponentstFilestrti$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¡
1640385473¢GenerateException£$3e4d0264-ac0c-4627-a2fa-6f413a9caafe¤
3646185970¥LogErrorMessage¦$35438eb1-a664-41a5-9c91-1c77ddde2b52§w With this method a component can propagade in a uniform way that its demo mode has expired and it has stopped to work.¨
3922114547©DemoModeExpiredª$e0a0ee36-9b29-4376-92d8-210830590cea«
2895160340¬
3063148035fb_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Ô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ð 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) ú
pParameterû
3380528868ü$708ad4f5-2a48-4fd2-8d88-fb3b143a33a4ýcmpeventmgr, 3.5.14.0 (system)þ 154268403ÿulLicenseIDulLicenseValue
2430688636CMPMGR_LICENSEREQUEST$ec71f5d5-b2a8-42f3-8e75-3a56c8942752
2765784940
_Implicit_Task_InfoKindOf_IMPLICIT_KINDOFTASKbProfilingTaskdwLastCycleTimediJitterdiJitterMindiJitterMaxwTaskStatus_IMPLICIT_JITTER_DISTRIBUTION_Implicit_Jitter_DistributionbWithinSPSTimeSlicingbShouldBlockbActivenCoreConfigurednCoreCurrent
pTaskGroup_IMPLICIT_TASKGROUP_INFO_Implicit_TaskGroup_InfopszParentTaskName
3064147540$e6cf92f3-3b47-5338-beaf-26e2a5a83457
4288098520
1363320977 235137531$0a97d8c5-2310-5720-bcd3-ed20eb927bba
2880228939
2164913627¡pszGroupName¢dwTaskGroupOptions£
diMaxCores¤parrdwCoreBits¥ 638065670¦$6c5d8c89-bc4d-538f-8200-63970dba9812§ 187872831¨TEST_ANY_DIFFER_DATATYPE©TEST_ANY_EQUALSªTEST_BOOL_DIFFER«TEST_BOOL_EQUALS¬TEST_BYTE_DIFFERTEST_BYTE_EQUALS®TEST_DATE_AND_TIME_DIFFER¯TEST_DATE_AND_TIME_EQUALS°TEST_DATE_DIFFER±TEST_DATE_EQUALS²TEST_DINT_DIFFER³TEST_DINT_EQUALS´TEST_DWORD_DIFFERµTEST_DWORD_EQUALS¶TEST_INT_DIFFER·TEST_INT_EQUALS¸TEST_LINT_DIFFER¹TEST_LINT_EQUALSºTEST_LREAL_DIFFER»TEST_LREAL_EQUALS¼TEST_LTIME_DIFFER½TEST_LTIME_EQUALS¾TEST_LWORD_DIFFER¿TEST_LWORD_EQUALSÀTEST_REAL_DIFFERÁTEST_REAL_EQUALSÂTEST_SINT_DIFFERÃTEST_SINT_EQUALSÄTEST_STRING_DIFFERÅTEST_STRING_EQUALSÆTEST_TIME_DIFFERÇTEST_TIME_EQUALSÈTEST_TIME_OF_DAY_DIFFERÉTEST_TIME_OF_DAY_EQUALSÊTEST_UDINT_DIFFERËTEST_UDINT_EQUALSÌTEST_UINT_DIFFERÍTEST_UINT_EQUALSÎTEST_ULINT_DIFFERÏTEST_ULINT_EQUALSÐTEST_USINT_DIFFERÑTEST_USINT_EQUALSÒTEST_WORD_DIFFERÓTEST_WORD_EQUALSÔCfUnitÕµ
This testsuite tests the different assert-functions for all the different data types in TwinCAT.
For every data type at least two different tests have been defined:
1. One test that succeeds (Expected and actual are equal)
2. One test that fails (Expected and actual are false).
Ö
1070688907×FB_PrimitiveTypesØ
3620816422ÙTest_LINT_DifferÚLIntÛaÜFB_PRIMITIVETYPESÝ$0cb4e3f2-729d-4d75-8a0a-07516a9794eeÞ$d6f75dd1-f045-4082-8776-85982b0ae74cß
1656850260àTest_DATE_DifferáDateâ$ebffe951-7f27-462e-ba85-3f2a43270aecã
1488232747äTest_DWORD_DifferåDWordæ$66ceea20-5a7d-4b95-b1eb-e7ee3c4b70abç
2180744207èTest_USINT_Equalsé$cde72b40-2fd6-4a92-a04b-0269b424b2b7ê
2473017636ëTest_TIME_OF_DAY_Equalsì TimeOfDayí$85b6b1a1-2462-4da9-a251-839c4ad33df3î
3533535052ïTest_BOOL_Equalsð$d651b9d0-71bd-4878-9d2a-2c66a765b494ñ
4042043810òTest_LINT_Equalsó$3c0c4aa8-9424-42f1-8731-d26293625ab3ô
3162049214õTest_BYTE_Differö$9fca7156-628d-44c1-894f-faa6a71a4cb1÷
1195216282ø 753850732ùTest_DINT_Differú$418a15a8-8942-49de-a21f-56f7300e9e30û 198389480üTest_DINT_Equalsý$fa1d9c35-669d-435c-9546-d70c8c7a94b2þ
2627522554ÿTest_LREAL_EqualsAnyReal$a6c932be-4f0b-491a-ad95-e6f71c55d689
4139474265Test_WORD_DifferWord
$317e9494-4efd-4b73-a4a1-57f443dfc0a8
3968155212Test_TIME_DifferTime$a2a654a2-ed53-4c52-a509-5a2db7ecc761
2604989754Test_BYTE_Equals$c70715ae-5a04-466d-b626-61983eac447d 284634104Test_REAL_EqualsReal$3ff5f032-f56a-4bde-877a-abef9f04842e
4191488800
1728221018Test_DWORD_Equals$8ebd3af4-2c8a-4b2c-8bd9-6ffcce8288b9
3497657072
3823116006
2889501815Test_ANY_Differ_DataType$727d1587-a665-48c7-a3e8-8439592b1864 915563648Test_LTIME_DifferLTime$7a97b632-b7b0-4607-996d-4d3bf6c0810c
1324226636Test_ULINT_Equals ULInt¡$77c931b5-b02f-44a9-aa1d-9b1c38d24d32¢
1014784762£Test_LWORD_Differ¤$42c0d250-6fed-4761-bbd6-b6618c453bf5¥
3235634345¦Test_ANY_Equals§$f83e4948-5c3d-4d05-8637-52a58b5c2c14¨
2592807266©Test_UDINT_DifferªUDInt«$62ab8ea6-6d7c-4923-bc8b-9990cfa99a91¬ 183225360Test_STRING_Differ®This is a string¯This is another string°$bd078c70-d4cc-4f1e-9b59-781cb6a3aadb±
3515263709²Test_WORD_Equals³$4e51651a-d7d1-4780-80a3-72ea1ca78f2b´ 653268572µTest_SINT_Differ¶$00951826-692b-41c4-8e91-b80ea25e2eb7·
3192760958¸Test_USINT_Differ¹$b15f330c-b7f1-4831-a041-9baf2e7afb7fº30269912»Test_SINT_Equals¼$74a08324-89cf-4885-85ec-ab50cb20e9c6½
3417885128¾Test_TIME_Equals¿$73b6837a-0142-4874-8ee8-8557d9cc2dc5À 978378722Á63589515ÂTest_LWORD_EqualsÃ$81ec823f-5c65-4a2b-80ae-540b503cacbeÄ
1661423725ÅTest_INT_DifferÆ$0e29bf59-ed94-41f5-80b8-e9cb3b8b1c20Ç 153373425ÈTest_LTIME_EqualsÉ$f78dfe01-ebfd-4eef-9bb6-b1e9a54045a9Ê 138473335ËTest_DATE_AND_TIME_EqualsÌDateAndTimeÍ$12feba5c-6f76-4f0c-8b02-2cdd4212851cÎ
2314545827ÏTest_INT_EqualsÐ$fcdc4c69-64f9-42c0-b5cf-f07a205198f8Ñ 936041596ÒTest_REAL_DifferÓ$eeecbc98-51d6-4618-88bd-2fcd3dc91d0bÔ
4090862110Õ
2737496459ÖTest_LREAL_Differ×$e338a5cf-2fe9-45bc-b970-d38cea93e991Ø
1901606461ÙTest_ULINT_DifferÚ$0d0d9e30-1840-46c4-a3ac-cf0cd182d193Û
3855610535ÜTest_DATE_AND_TIME_DifferÝ$105dcf9b-120f-47e5-b827-eb4805658d35Þ
1174171856ßTest_DATE_Equalsà$810985db-2155-47b2-8546-863846ff9ab5á
2277019686âTest_UINT_Equalsã$ea252140-8e94-46a4-ad1a-7cc742796feaä
1901659501åTest_TIME_OF_DAY_Differæ$88c402bd-74ed-48a9-9ffb-b2c7b47dde3cç
2693097378èTest_UINT_Differé$2925eb23-7cf3-4688-b8fb-8da6c368ee8fê
4120936648ëTest_BOOL_Differì$6279ed0b-29d3-4713-a912-29375b72f630í
2772252435îTest_UDINT_Equalsï$f4df0884-683d-4a41-ab0c-743fcd42e36bð 163799222ñTest_STRING_EqualsòHello thereó$ed0937c8-047c-4f54-9007-aa5de45de9b3ôASSERTTHATINTSAREEQUALõASSERTTHATINTSARENOTEQUALöASSERTTHATWORDSAREEQUAL÷ASSERTTHATWORDSARENOTEQUALø÷
This testsuite verifies that the Assert_True and Assert_False methods do what they are supposed to. It does so
by making sure that every assert-method (assert_true & assert_false) does both one failing and one successful
assert.
ù
1271152990úFB_AssertTrueFalseû 246191547üAssertThatINTsAreEqualýFB_ASSERTTRUEFALSEþ$e329edff-158b-47b8-b448-4482e312fc51ÿ$4a344c15-007d-4e24-b34e-25e793163fe6 320104211
3984085859AssertThatINTsAreNotEqual$e9713416-6687-4536-b3eb-d0e312881039 103446585
2122037051
1025769214AssertThatWORDsAreNotEqual$7f2e9dc0-aaa1-4524-9220-4e31b7d76d84
2716321451
3593351592AssertThatWORDsAreEqual$cb8a8728-6b7f-485b-9255-e9e2c3d7b1b4 690419177TWICEASSERTCALLÆ
In this testsuite we are running the same testcase over two cycles, and thus calling every assert method twice.
This is in order to verify that we don't print every FAILED assert twice.
1989861691FB_AssertEveryFailedTestTwiceAssertCount
2696038033FB_ASSERTEVERYFAILEDTESTTWICE$3bea6e4d-8d08-467b-90da-24a784807eae
4282869222
2625023338
2448907021
4171858112TwiceAssertCallaANYbANYaBOOLbBOOLaBYTE bBYTE¡aDATE¢bDATE£aDATE_AND_TIME¤bDATE_AND_TIME¥aDINT¦bDINT§aDWORD¨bDWORD©aINTªbINT«aLINT¬bLINTaLREAL®bLREAL¯aLTIME°bLTIME±aLWORD²bLWORD³aREAL´bREALµaSINT¶bSINT·Hello world¸aSTRING¹ Hey thereºbSTRING»aUDINT¼bUDINT½aUINT¾bUINT¿aULINTÀbULINTÁaUSINTÂbUSINTÃaTIMEÄbTIMEÅaTIME_OF_DAYÆbTIME_OF_DAYÇaWORDÈbWORDÉ$69d3987a-7ce5-4206-ac7a-879b67c9a54dÊ 365334915ËTESTONEÌ
TESTONE_AGAINÍTESTONE_AGAINAGAINÎTESTONE_AGAINAGAINAGAINÏÏ
This testsuite creates four tests in the same testsuite with the same name. Every test in a testsuite should have
an unique name. Every assert should be ignored if a duplicate test is being run.
Ð
3250938232ÑFB_CreateFourTestsWithSameNameÒ
3281589091ÓTestOne_AgainAgainÔFB_CREATEFOURTESTSWITHSAMENAMEÕ$f97b8825-364c-4046-983a-104d2c070686Ö$7b1f39ab-8960-43b8-8ec6-8f13e574f736×
3191698294Ø
4168777753ÙTestOne_AgainAgainAgainÚ$2d274c02-8a97-4c6e-806e-1f05be2e2af3Û
1209541766Ü
TestOne_AgainÝ$01798474-e702-41c3-94c8-ec7fd2bc4723Þ
1643426206ß
3146324223à
3050414125áTestOneâ$a0db3538-83d9-431d-9b73-12250812435fã
3475197072ä 143144007åTEST_BOOL_ARRAY_DIFFERINCONTENTæTEST_BOOL_ARRAY_DIFFERINSIZEçTEST_BOOL_ARRAY_EQUALSèTEST_BYTE_ARRAY_DIFFERINCONTENTéTEST_BYTE_ARRAY_DIFFERINSIZEêTEST_BYTE_ARRAY_EQUALSëTEST_DINT_ARRAY_DIFFERINCONTENTìTEST_DINT_ARRAY_DIFFERINSIZEíTEST_DINT_ARRAY_EQUALSî TEST_DWORD_ARRAY_DIFFERINCONTENTïTEST_DWORD_ARRAY_DIFFERINSIZEðTEST_DWORD_ARRAY_EQUALSñTEST_INT_ARRAY_DIFFERINCONTENTòTEST_INT_ARRAY_DIFFERINSIZEóTEST_INT_ARRAY_EQUALSôTEST_LINT_ARRAY_DIFFERINCONTENTõTEST_LINT_ARRAY_DIFFERINSIZEöTEST_LINT_ARRAY_EQUALS÷ TEST_LREAL_ARRAY_DIFFERINCONTENTøTEST_LREAL_ARRAY_DIFFERINSIZEùTEST_LREAL_ARRAY_EQUALSú"TEST_LREAL_ARRAY2D_DIFFERINCONTENTûTEST_LREAL_ARRAY2D_DIFFERINSIZEüTEST_LREAL_ARRAY2D_EQUALSý"TEST_LREAL_ARRAY3D_DIFFERINCONTENTþTEST_LREAL_ARRAY3D_DIFFERINSIZEÿTEST_LREAL_ARRAY3D_EQUALS TEST_LWORD_ARRAY_DIFFERINCONTENTTEST_LWORD_ARRAY_DIFFERINSIZETEST_LWORD_ARRAY_EQUALSTEST_REAL_ARRAY_DIFFERINCONTENTTEST_REAL_ARRAY_DIFFERINSIZE
TEST_REAL_ARRAY_EQUALS!TEST_REAL_ARRAY2D_DIFFERINCONTENTTEST_REAL_ARRAY2D_DIFFERINSIZETEST_REAL_ARRAY2D_EQUALS!TEST_REAL_ARRAY3D_DIFFERINCONTENTTEST_REAL_ARRAY3D_DIFFERINSIZETEST_REAL_ARRAY3D_EQUALSTEST_SINT_ARRAY_DIFFERINCONTENTTEST_SINT_ARRAY_DIFFERINSIZETEST_SINT_ARRAY_EQUALS TEST_UDINT_ARRAY_DIFFERINCONTENTTEST_UDINT_ARRAY_DIFFERINSIZETEST_UDINT_ARRAY_EQUALSTEST_UINT_ARRAY_DIFFERINCONTENTTEST_UINT_ARRAY_DIFFERINSIZETEST_UINT_ARRAY_EQUALS TEST_ULINT_ARRAY_DIFFERINCONTENTTEST_ULINT_ARRAY_DIFFERINSIZETEST_ULINT_ARRAY_EQUALS TEST_USINT_ARRAY_DIFFERINCONTENTTEST_USINT_ARRAY_DIFFERINSIZETEST_USINT_ARRAY_EQUALSTEST_WORD_ARRAY_DIFFERINCONTENTTEST_WORD_ARRAY_DIFFERINSIZETEST_WORD_ARRAY_EQUALSõ
This testsuite tests the different assert-functions for all the different type of arrays (varying by the different
data types that are available in TwinCAT). For every type of array (BOOL, BYTE, INT etc.) at least three different
tests have been defined:
1. One test that succeeds, where the data and size of the arrays are matching
2. One test that fails, where the size of the arrays differs
3. One test that fails, where the content of the array differs
2699084327 FB_ArrayPrimitiveTypes¡
1283235838¢Test_UINT_Array_DifferInSize£FB_ARRAYPRIMITIVETYPES¤$b31cd7c7-b957-491f-bd93-b12e1f3bbcd4¥$50358d3a-b100-454e-8d82-abe092455655¦
3953698730§Test_LREAL_Array_DifferInSize¨$0a4de673-fd9b-43b6-850e-74dbd41b55a8©
2081626709ªTest_BOOL_Array_DifferInSize«$41caa71a-6ab3-4490-bc09-94996e7d75ba¬
3952018129Test_SINT_Array_DifferInSize®$1e2cf123-18a8-4cbd-8e48-7b26724ed431¯
3484298254°!Test_REAL_Array2d_DifferInContent±$d59b10ba-c9b8-4aa5-b74d-ea45c0a97441²
2541860279³Test_UDINT_Array_Equals´$6c304295-4f17-4c57-8891-0f1fad1602aaµ
1835772602¶Test_UINT_Array_DifferInContent·$da5beac5-bfad-43f6-bccf-6e73673259ad¸
3270196743¹
4121323061ºTest_BYTE_Array_Equals»$8cb3cfd1-77fc-469e-8ac9-576771a3f2ca¼
1626830512½ Test_UDINT_Array_DifferInContent¾$d7edb2d8-5f1b-4ffb-9939-432d3de30e56¿
2181332731ÀTest_REAL_Array_DifferInContentÁ$d301c239-4bf1-4c0d-85af-4599db00b21aÂ
3414218012ÃTest_UDINT_Array_DifferInSizeÄ$ad97c736-6e06-46d5-9c00-65f6c2edd9e0Å56003460ÆTest_REAL_Array_EqualsÇ$703914ba-e617-4db8-9101-ad1e09d951faÈ 460706827ÉTest_WORD_Array_DifferInSizeÊ$63e71fa0-e00e-4421-8325-513028737c05Ë
3793371623Ì Test_DWORD_Array_DifferInContentÍ$f7dc0453-b8e0-4434-a8ea-0a0c1ad42e07Î 467253204Ï!Test_REAL_Array3d_DifferInContentÐ
__Index__2Ñ$0218ea1f-8ab3-4780-855a-4bda76b4bd29Ò
3426194533ÓTest_REAL_Array2d_EqualsÔ$c2e03616-7116-4142-98e9-1cdbbf9188f6Õ 549657412Ö Test_LWORD_Array_DifferInContent×$d3192e95-f722-47ec-b7f2-44bda4348e2fØ
3283755235ÙTest_REAL_Array3d_DifferInSizeÚ$2f5f884e-e0a5-4854-ae56-af720801bb1fÛ
2106604960ÜTest_UINT_Array_EqualsÝ$9766c6d1-f91e-4861-a12b-6da36072d9a8Þ 716197780ßTest_USINT_Array_DifferInSizeà$c5f2ed88-90cb-4cd5-b782-f07722f54aa3á 465230461âTest_SINT_Array_Equalsã$43848a04-b953-4660-8589-62195d762770ä
2178838410åTest_LINT_Array_Equalsæ$4bdfad96-2390-412b-a1a3-fa1e514fb731ç 616078359èTest_REAL_Array3d_Equalsé$ac6e988d-1d5a-4b2f-9434-494cd25e9d00ê
2021118962ëTest_LINT_Array_DifferInSizeì$63ab26dc-0fab-4888-8aea-e3bd038f5016í 994396293îTest_BOOL_Array_Equalsï$602dc3c1-d714-446a-b1c9-fe3db70e04f2ð 559292979ñTest_INT_Array_DifferInSizeò$33a9368b-fc55-4cd4-8de0-0f331d4f93edó
1122440789ôTest_LREAL_Array3d_Equalsõ$35a98408-a9d2-467b-ab41-be1336f4d5d1ö
2350659139÷Test_LREAL_Array2d_DifferInSizeø$28f95767-365d-466d-b941-002765b7aacbù
3175161527úTest_BYTE_Array_DifferInContentû$5a3fc488-ce8e-4416-afcb-989908d1a477ü
3735703926ýTest_DINT_Array_Equalsþ$d64e3057-abc8-4ec9-90f7-e0bae1e032aaÿ
1570086498Test_LREAL_Array2d_Equals$78fed880-525c-48dc-8dc2-6a8b82a2b4e4 830890264Test_DINT_Array_DifferInContent$21b235e1-384f-4032-a872-5b20bb0909a6
313734004Test_SINT_Array_DifferInContent$68217455-3726-49b2-85d5-66552f2e3d11
3758696761 Test_LREAL_Array_DifferInContent$31469020-3298-4354-8358-e4fbceae9705 940798199Test_WORD_Array_DifferInContent$7043cf17-eda5-41c0-8101-ae3e52fdbf57
4124015028Test_DWORD_Array_DifferInSize$c334c67b-514e-4468-90d8-4277568b0b2a
1214728264Test_INT_Array_Equals$ff6e4d4a-b40e-4bcd-b765-ce99ddf56df3
1477388691Test_REAL_Array2d_DifferInSize$d16073c4-cace-4970-8af2-a2b4804325d1
1571139330Test_USINT_Array_Equals$024c8113-991a-4779-a9f7-55567c26bb69
1434196650Test_REAL_Array_DifferInSize$f718071d-c28b-4a93-b758-c0cdbe82cc9a 955244002Test_BOOL_Array_DifferInContent$7b271ca5-8f9a-4fcf-9207-0915581f4c7c
2908960794¡Test_BYTE_Array_DifferInSize¢$adf0d435-012a-46fa-86ef-fb8e0dd23d8d£ 402120151¤
1138834347¥
1431320248¦
2852748274§ Test_ULINT_Array_DifferInContent¨$b79f6469-858a-402c-849d-dc166751ba74©
1859603635ª"Test_LREAL_Array2d_DifferInContent«$9363c675-3308-4b60-90d8-bc707c8055bb¬
3304282053
2048032359®Test_INT_Array_DifferInContent¯$b81da39f-9c49-4b61-a088-a3afaeda8830° 688685866±Test_LREAL_Array_Equals²$09667cfd-34f5-4531-bd9a-4046fa57fdcb³
1099872069´Test_LWORD_Array_Equalsµ$a80af460-c72c-448c-aeb0-96d724afc9a5¶
2682207806·Test_LREAL_Array3d_DifferInSize¸$18a94bce-050f-43d3-b411-b74954895b02¹ 596550510º Test_USINT_Array_DifferInContent»$a21148d1-d45d-4070-b3a5-fadc62daa9f6¼
1838016790½Test_DWORD_Array_Equals¾$b0c44502-c8cc-4726-8b79-ef1c800cbe36¿
1567077497ÀTest_WORD_Array_EqualsÁ$e858d122-3913-46cd-84b3-f0f6a3a3b0a4Â
3064787725ÃTest_DINT_Array_DifferInSizeÄ$86eb5976-92fb-4ce3-948d-bdf07eb99e3eÅ
2088439193ÆTest_LWORD_Array_DifferInSizeÇ$3d52b6dd-665b-4dc1-88a4-e1331996e9c4È 425218498ÉTest_ULINT_Array_EqualsÊ$8b0f2531-7534-4e71-a52f-4d759d52b09fË
1068957092Ì"Test_LREAL_Array3d_DifferInContentÍ$e361e8eb-896b-43c9-aa55-90f36713ed72Î
3033418415ÏTest_LINT_Array_DifferInContentÐ$2698005b-e405-4442-b11f-bb5aab8920b0Ñ
1406480748ÒTest_ULINT_Array_DifferInSizeÓ$6e834fe5-5254-48ec-9178-d37e9e35a502ÔTESTDISABLEDÕTESTENABLEDÖµ
This testsuite runs two tests. One that is enabled (and that is supposed to fail), and one that is disabled (and
even though it also is failing is not supposed to run).
×
2499854457ØFB_CreateDisabledTestÙ
1628698511ÚTestEnabledÛFB_CREATEDISABLEDTESTÜ$aaa74956-ecdb-40ff-a4da-e0ad237c9503Ý$3f1093ff-32d2-455a-8cf0-190014c55a4cÞ
4132480384ß
2238999680àTestDisabledá$773db475-8255-416d-8669-8526d3357b4dâ
1023559596ã
4290862005ä
3909217540å
3836025984æTEST_ANY_BOOL_DIFFERçTEST_ANY_BOOL_EQUALSèTEST_ANY_BYTE_DIFFERéTEST_ANY_BYTE_EQUALSêTEST_ANY_DATE_AND_TIME_DIFFERëTEST_ANY_DATE_AND_TIME_EQUALSìTEST_ANY_DATE_DIFFERíTEST_ANY_DATE_EQUALSîTEST_ANY_DINT_DIFFERïTEST_ANY_DINT_EQUALSðTEST_ANY_DWORD_DIFFERñTEST_ANY_DWORD_EQUALSòTEST_ANY_INT_DIFFERóTEST_ANY_INT_EQUALSôTEST_ANY_LINT_DIFFERõTEST_ANY_LINT_EQUALSöTEST_ANY_LREAL_DIFFER÷TEST_ANY_LREAL_EQUALSøTEST_ANY_LTIME_DIFFERùTEST_ANY_LTIME_EQUALSúTEST_ANY_LWORD_DIFFERûTEST_ANY_LWORD_EQUALSüTEST_ANY_REAL_DIFFERýTEST_ANY_REAL_EQUALSþTEST_ANY_SINT_DIFFERÿTEST_ANY_SINT_EQUALSTEST_ANY_STRING_DIFFERTEST_ANY_STRING_EQUALSTEST_ANY_TIME_DIFFERTEST_ANY_TIME_EQUALSTEST_ANY_TIME_OF_DAY_DIFFER
TEST_ANY_TIME_OF_DAY_EQUALSTEST_ANY_UDINT_DIFFERTEST_ANY_UDINT_EQUALSTEST_ANY_UINT_DIFFERTEST_ANY_UINT_EQUALSTEST_ANY_ULINT_DIFFERTEST_ANY_ULINT_EQUALSTEST_ANY_USINT_DIFFERTEST_ANY_USINT_EQUALSTEST_ANY_WORD_DIFFERTEST_ANY_WORD_EQUALSî
This testsuite tests the different assert-functions for all the primitive data types in TwinCAT, but using the
ANY-version of the Assert-method.
For every data type at least two different tests have been defined:
1. One test that succeeds (Expected and actual are equal)
2. One test that fails (Expected and actual are false).
For every failing test the printed value should be the same as if we were using the primitive data type assert
directly.
2825987487FB_AnyPrimitiveTypes
2296896902Test_ANY_TIME_DifferFB_ANYPRIMITIVETYPES$361fa935-4959-4eb6-b25a-f9965f1f30dd$bf0ad75f-805b-4448-a5e9-9fafb9350eaa
3592231864Test_ANY_DINT_Equals$ac4e8032-dccc-4a7e-9803-44020c8533e4
1000547020Test_ANY_ULINT_Equals$f13de1a5-523a-4c9d-8e7e-8c0b2840de93
1806283063Test_ANY_ULINT_Differ $dae19af6-fcc2-42c1-aaca-8dc7c861bdcc¡
1893644941¢Test_ANY_DATE_AND_TIME_Differ£$0d3f804a-d51e-43e6-bd81-f031ee7308e1¤
2437122568¥Test_ANY_SINT_Differ¦$b0f8ac71-681f-4f1a-94dd-32b085f23744§
2912586807¨Test_ANY_BOOL_Differ©$9def4202-9b1d-4fca-a694-7baecaa73c6dª
3487798320«Test_ANY_LTIME_Equals¬$ccdb0dec-fafe-402a-802f-577154e15f12
2682849227®Test_ANY_LTIME_Differ¯$c72b07c9-bd17-4b41-8647-93f2630ffe0c°
4230101695±Test_ANY_DINT_Differ²$cb70e186-1a96-4b29-985d-60f5f4684775³ 930357502´
3700644572µTest_ANY_UDINT_Equals¶$9c466d83-1d0b-48d6-a187-0404dcd7fc0c·
2445959671¸Test_ANY_STRING_Differ¹$8384ce7c-1f54-4249-9dc0-3b2f1dfa1e90º
2732129409»Test_ANY_TIME_Equals¼$8b715def-1875-46d4-8b4b-cd8cbb83966f½12461003¾Test_ANY_LREAL_Equals¿$d886c391-4ffc-42ba-aacc-8f8f2b3a5e54À
4221124688ÁTest_ANY_DATE_DifferÂ$cfc83bfe-e5f8-4bb0-9243-3c64bb120daeÃ
2755016397ÄTest_ANY_USINT_EqualsÅ$44a01ea7-d3cf-4d20-aeb7-e4787721e931Æ
2430674199ÇTest_ANY_INT_DifferÈ$3902bfc9-94f5-457a-8cf1-bf8e15c96e38É 138420671ÊTest_ANY_WORD_EqualsË$962442d1-3576-440d-880d-7ca8abee0ca2Ì
1390932524ÍTest_ANY_BYTE_EqualsÎ$2f42883b-2905-4fcf-ab87-5d19e1fac7b2Ï 578748600ÐTest_ANY_WORD_DifferÑ$684677fe-b88b-4336-9954-f4e16d3d3cf5Ò 624049899ÓTest_ANY_TIME_OF_DAY_EqualsÔ$54c634d0-a0c1-46c0-81a9-2d082c52fde4Õ 720044093ÖTest_ANY_REAL_Differ×$f2472e3d-089e-474c-b4b8-54a3d353ad64Ø 856130493Ù
3410836388ÚTest_ANY_LINT_EqualsÛ$668fbd05-1b2c-4b08-8d52-d1aaaa059802Ü
1419013707Ý
3145509647ÞTest_ANY_SINT_Equalsß$630cc9a7-6d4d-40eb-ab44-a0a4844068f6à
3644680110áTest_ANY_DATE_AND_TIME_Equalsâ$3b6f68a1-4ae4-42ef-9963-3b1290dfe7f6ã
1677282816äTest_ANY_TIME_OF_DAY_Differå$6a1b7492-d6c5-4590-b52d-c2c8e1ee1844æ
3691440655çTest_ANY_DWORD_Differè$23ed3054-fb0f-4676-a33d-13cb685f2f27é 267086174êTest_ANY_LWORD_Differë$ef3f03f1-1a53-4489-8c36-c28660c1e7b7ì
1608645285íTest_ANY_LWORD_Equalsî$19993f03-49d7-4cee-97a1-88ff9d9eb2e6ï13902138ðTest_ANY_REAL_Equalsñ$8290f811-4b5b-4e83-b6ee-422a2bd05e2bò
3578830441ó
2653464199ôTest_ANY_STRING_Equalsõ$45fb731e-62a5-4739-983d-66e18d9850beö 486070871÷
1354018864øTest_ANY_LREAL_Differù$c7618ef1-aae1-478a-8d43-1bb5a958b641ú
3782351523ûTest_ANY_LINT_Differü$fb115c0d-34a2-4d3c-af00-30e036afd5d7ý 246386581þTest_ANY_INT_Equalsÿ$16ed816c-bec6-46ce-a406-42d965e0fb31
4097615158Test_ANY_USINT_Differ$feb2c66c-f754-4a55-ba64-e1fdc77ddce6
2358888743Test_ANY_UDINT_Differ
$e30459bf-ebf3-48ab-a1c1-3d0dd57a829e
3517342039Test_ANY_DATE_Equals$d466f1ae-1c99-4517-81d7-ba44ee80c32f
2275781936Test_ANY_BOOL_Equals$24b88842-0df5-436f-8f65-86f62612214c
3266197740Test_ANY_UINT_Differ$6fcb372c-bdc6-4fa3-bdd8-941d914d6b3a
2027475755Test_ANY_BYTE_Differ$dd37329d-bb06-4679-abf4-e4d04399c232
3901823467Test_ANY_UINT_Equals$9e678934-ef5b-42e1-a53f-17737ee06d35
2349627892Test_ANY_DWORD_Equals$5708854e-5f0b-4ac2-80a1-0b3d9009a3edTWICEASSERTCALL_ARRAYSú
In this testsuite we are running the same testcase over two cycles, and thus calling
every assert method twice. This is in order to verify that we don't print every FAILED assert twice.
With this version we are doing it with arrays.
2731224403)FB_AssertEveryFailedTestTwiceArrayVersion
3310563177)FB_ASSERTEVERYFAILEDTESTTWICEARRAYVERSION$5b8060b0-3687-4b9b-9022-5637e5f78c2d
3280665375 TwiceAssertCall_Arrays¡aLREAL2d¢bLREAL2d£aLREAL3d¤bLREAL3d¥aREAL2d¦bREAL2d§aREAL3d¨bREAL3d©$3223af5e-9433-428f-b1bd-3d3746f6e73fª
4253876260«
2568231803¬ 867412798 910118007®TEST_BIT¯ TEST_BOOL° TEST_BYTE± TEST_DATE²TEST_DATE_AND_TIME³ TEST_DINT´
TEST_DWORDµTEST_INT¶ TEST_LINT·
TEST_LREAL¸
TEST_LTIME¹
TEST_LWORDº TEST_REAL» TEST_SINT¼TEST_STRING½
TEST_STRING_2¾ TEST_TIME¿TEST_TIME_OF_DAYÀ
TEST_UDINTÁ TEST_UINTÂ
TEST_ULINTÃ
TEST_USINTÄ TEST_WORDÅTEST_WSTRINGÆ2
Tests the free function F_AnyToUnionValue.
Ç 950625724ÈFB_AnyToUnionValueÉ9 Only structures and function blocks can have BIT definedÊBitËaBitÌ 681837092Í Test_DINTÎresultÏFB_ANYTOUNIONVALUEÐ$c81a9536-5ff4-4424-9f7e-1d8c5133b5e3Ñ$0cc46357-158c-41b7-afc0-2c79ec82f0f6Ò
3917569571ÓTest_BITÔ$2bab70c5-093e-48a7-94e6-ae7f2bb2e7b3Õ 566006787Ö
Test_LREAL×$af2fee48-9d46-49ec-9fe0-6a046d6c2f7dØ 311731436Ù
Test_UDINTÚ$2ae444f0-9149-4c01-b7ad-2fdcab7bba7cÛ 975394959Ü Test_REALÝ$5ff5264d-4661-4dc4-8889-01d457341535Þ 172755847ßTest_WSTRINGàWStringáThis is a random stringâ$cd24edfa-28c7-4bf7-ad9e-262f073a3ddfã
1665664983ä
4246374902å
Test_STRING_2æ 255 charactersçÿ8YNn5KOmPC4dAcpOBdLWnw4WkN126EwXsj65xeurG48gWBepinNaOIKeCVMtWNBSxQWPdtUYiAusDkjMLtQhDtiWbwvmoKcFwiUGDd7pOe0fd52J7hK60oaYAX6VWWmceLJX8utaDVrVzCGXafeZLeHl6jj5enfjg4tfb2WMEBdsBuG2iDKwzwhBLCPqXDnhe5HbemIbtZT7p62OEj2oDqiIYDD6tZdlhBCCelDBx6dbIp32wFm0TpRKsTiwkZ6è$1e075eec-d55a-483a-976e-656d4a8d5ac3é 591497212ê
Test_USINTë$ef948bb4-ae4e-47a7-b963-d71ce86c9997ì 916277003í Test_SINTî$fd59d157-95aa-462e-812a-26f74d790e8cï 340379343ð
3522644331ñ
1399560010òTest_DATE_AND_TIMEó$76b46507-8743-481c-8853-3b45d1544ad5ô
2731946299õ Test_BYTEö$226781dc-3660-487a-bcbd-00cc36750e0e÷
1033078010ø Test_LINTù$d2a7cc80-d43e-4823-a346-11defa0d180fú
2842627597û Test_DATEü$84a5fde1-b357-4804-bf01-5c83bfeb54b3ý84583040þ
4282332081ÿ
Test_ULINT$5e5e97df-5e62-40a2-b054-3ba7c91cef7063816872Test_STRING$825e7694-a502-4c32-9d34-807560d3aa4c
1143447900
Test_LTIME$1affac86-d501-40a0-99f5-4eeb9cd389fd 102530888 Test_WORD$3859891c-ade4-48ca-89f8-da9a77a2ccbb
3374558849 Test_TIME$e7b3c2aa-6660-47ce-9edf-58924221789c
3966668324 Test_BOOL$48f55beb-9fc1-4336-8784-72fc7eda80de
3885155971Test_TIME_OF_DAY$55ccbe56-fcd0-4e7f-8497-d0c19c60ad6a
1637131823Test_INT$77ff5bf1-1822-4366-a4ee-34a185c0d47e
2178852710
Test_LWORD$f0464dd4-9a3f-4fed-bf6c-84c05edc34ab 579344440
1302761495 Test_UINT$3309739e-f1a1-45d7-928b-c636d1592c1c
3815693493
Test_DWORD$e6dfcf37-a491-45b2-9543-b7fdd8847283 ASSERT_SEVERALTIMES¡Ä
This test-suite runs several asserts with the same parameters (same expected, actual, message) in the same cycle
and in the same test.
The reason we want the framework to support this is that theoretically the user could want to do an assert with the
same message, in the same test, with the same data values for both expected and actual, although the data that the
user does the assert on might be from different data sets.
¢
4081204642£:FB_MultipleAssertWithSameParametersInSameCycleWithSameTest¤ 613592518¥:FB_MULTIPLEASSERTWITHSAMEPARAMETERSINSAMECYCLEWITHSAMETEST¦$9957a11f-d554-4b5d-be35-f56d53aab4f2§
2308546305¨
3727129239©
3252720130ªAssert_SeveralTimes«c¬de®f¯$cd07d59b-c5ef-4bab-a334-9a8ba622ccca°
1729793733±
3827496724²ÿ Implements a timer with a turn-on delay
.. code-block:: codesys
(* Example declaration *)
TONInst : TON ;
(* Example in ST *)
TONInst(IN := VarBOOL1, PT:= T#5s);
VarBOOL2 := TONInst.Q;
.. image:: @(Ton)
.. cds:ranges::
:IN: [TRUE,FALSE]
:PT: [0..255]
:~PT_OLD: [0..255]
:Q: [TRUE,FALSE]
:ET: [0..4294967295]
³
2584096362´TONµK | Rising edge: starts delay counter
| Falling edge: resets delay counter¶IN·$ Time for the delay counter [ms] ¸PT¹d | ``FALSE`` if ``IN`` is ``FALSE``
| ``TRUE`` if ``IN`` is ``TRUE`` and delay time ``PT`` elapsedº) Elapsed time since rising edge at ``IN``»ET¼ internal variable ½ StartTime¾
2487846102¿$e1ef856a-b512-4271-b62a-e2b2db25e9c1À
2628074829Á
3509158782Â
1138189611Ã
3981616308ÄASSERT_SEVERALTIMESAGAINÅASSERT_SEVERALTIMESAGAINAGAINÆ¿
This test-suite runs several asserts with the same parameters (same expected, actual, message), calling the asserts
in different cycles and using different tests.
On top of this, we will call new asserts (though with same parameters) in later cycles.
The reason we want the framework to support this is that theoretically the user could want to do an assert with the
same message, in different tests, with the same data values for both expected and actual, although the data that the
user does the assert on might be from different data sets.
Ç
4068034930ÈIFB_MultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTestsÉ( Timer to call "AssertSeveralTimesAgain"ÊAssignË
TimerAgainÌ- Timer to call "AssertSeveralTimesAgainAgain"ÍTimerAgainAgainÎ- Indication of whether we've called all testsÏ CalledAllÐ 824481148ÑIFB_MULTIPLEASSERTWITHSAMEPARAMETERSINDIFFERENTCYCLESBUTWITHDIFFERENTTESTSÒ$0b8cb81e-eae8-42e4-b5ff-552a60654ab4Ó
4221773756Ô
3980418740ÕAssert_SeveralTimesAgainAgainÖ$13865f28-fa53-4b31-8e3e-fc9c2f3580da×
2308466723Ø
3821193263Ù
1800543707ÚAssert_SeveralTimesAgainÛ$7d562c97-c3cc-4d37-92fc-9c428ab6a443Ü
2347385415Ý$5aa8b452-9e18-4334-94e6-939c93281b5bÞ 327773621ß
This test-suite runs several asserts with the same parameters (same expected, actual, message), calling the asserts
in different cycles and using the same test.
On top of this, we will call new asserts (though with same parameters) in later cycles.
The reason we want the framework to support this is that theoretically the user could want to do an assert with the
same message, using the same test with the same data values for both expected and actual, and splitting the asserts
on different cycles.
à
2872403778áAFB_MultipleAssertWithSameParametersInDifferentCyclesAndInSameTestâ
2988540845ãAFB_MULTIPLEASSERTWITHSAMEPARAMETERSINDIFFERENTCYCLESANDINSAMETESTä$b90749b6-04c8-4717-bf88-8db2fbf83f6aå4280250æ
1229944362ç
3183058166ègéhêkëlìmínîoïpðqñrrò$fec25683-5d3d-4525-82ab-3bcd5de9b899ó 859150843ô
2622326539õ7TESTINSTANCEPATH220CHARSEXPECTSHORTENEDTESTINSTANCEPATHö5TESTINSTANCEPATH252CHARSEXPECTTOOLONGTESTINSTANCEPATH÷5TESTINSTANCEPATH255CHARSEXPECTTOOLONGTESTINSTANCEPATHø§ This testsuite tests the function block FB_AdjustAssertFailureMessageToMax255CharLength_Test
The total printed message can not be more than 252 characters long.
ù
2889695940ú3FB_AdjustAssertFailureMessageToMax252CharLengthTestû
2765194856ü3FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTHTESTý$305341a5-f462-4bcb-ba17-ae2773c50e69þ
4228322229ÿ
21523420827TestInstancePath220CharsExpectShortenedTestInstancePath @Text-FixtureÜPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELO TestInstancePathNameWith220Chars<Very long message that is 60 characters long which means tha
TooLongTestMessage60Chars @Test-Result-Expected
220 + 32 = 252 (in other words, expected test message should be 32 characters long including '...TestMsg too long' Very long mes...TestMsg too longTestMessageResultExpected
@Test-ResultTestInstancePathResultTestMessageResult$dc008964-f701-440f-97f6-bba60a51fe93
15750122935TestInstancePath252CharsExpectTooLongTestInstancePathüPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNA TestInstancePathNameWith252CharsVery short messageShortTestMessage @Test-Result-ExpectedüPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELO...TestName too long.TestInstancePathNameWith252CharsExpectedResultShortTestMessageExpectedResult&TestInstancePathNameWith252CharsResultShortTestMessageResult$f67e3ff5-02f7-4268-9fa7-f06935f8269a
1967219966
1570258145
1731583882 8414714685TestInstancePath255CharsExpectTooLongTestInstancePathÿPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAGAV TestInstancePathNameWith255Chars¡$fbb2640b-9b30-45ae-a207-49da858d57e9¢y This is an empty testsuite with no test cases, so that we can verify that the system still prints the
test results. £
2885988520¤FB_EmptyTestSuite¥ 314000593¦FB_EMPTYTESTSUITE§$1ac34d34-5767-43bd-8deb-b4e9cf217e56¨
2779519499©
2216622724ª
1086682074« 484821319¬
2870520515PRG_TEST®PrimitiveTypes¯1Local, IsCompiled, Absolut, Initialized, Typified°AssertTrueFalse±AssertEveryFailedTestTwice²CreateFourTestsWithSameName³ArrayPrimitiveTypes´CreateDisabledTestµAnyPrimitiveTypes¶&AssertEveryFailedTestTwiceArrayVersion·AnyToUnionValue¸7MultipleAssertWithSameParametersInSameCycleWithSameTest¹FMultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTestsº>MultipleAssertWithSameParametersInDifferentCyclesAndInSameTest»0AdjustAssertFailureMessageToMax252CharLengthTest¼EmptyTestSuite½$076b236c-19e9-4a2d-94a1-f0c31f2ce92e¾
2338394504¿_Implicit_Task_Config_InfoÀTODO eventtasksÁwVersionÂnNumOfTasksÃpszApplicationNameÄptasksÅ
3669029852Æ_IMPLICIT_TASK_CONFIG_INFOÇ$90fd8182-038e-5383-bb1b-5c607613857fÈ
1234088797É
1833442206Ê__sys__setup__tasksË%External, Compiled, Typified, LocatedÌ$367f78aa-81ce-5dee-b8fd-520b5ed4913cÍ <SIL2/>Îm4export_32bit_nosignatureÏ 830427680ÐLogAdd2ÑhLoggerÒudiCmpIDÓ
udiClassIDÔ
udiErrorIDÕ udiInfoIDÖpszInfo×$f782c8f1-3e37-44f5-9ca0-ba40c1145169Øcmplog, 3.5.5.0 (system)Ù
2222278874Ú__HelpConvertDateÛppstrÜnYearÝnMonthÞnDayßDayOfMonthTableà$1c137676-f66f-428c-af12-54699e1772b8á
2130786092â__HelpConvertTimeãdwHourädwMinuteådwSecondæ
dwMilliSecondç$13c0f538-7207-41d3-8311-a322a7c20a0eè
3586288056é__HelpConvertTimeWithUnitêdwDayë$50f01a4a-c350-4e6e-9dfa-0c242ec58ce8ì 371843759í
__HelpConvertî$fdd0113a-d0f8-4f19-bc73-fa6acf9ecc59ï
1562513299ð
__ExtractRealñL True iff f is infinity, diM = 1 for +Infinity and -1 for -Infinity, iE is 0òiEódiMôxNaNõuiEöudiM÷$b4fbe026-742b-4541-9a4b-a710de7d376cø
2223293048ù__HelpConvertLTimeWithUnitúlwDayûlwHourülwMinuteýlwSecondþ
lwMilliSecondÿ
lwMicroSecondlwNanoSecond$9b7fa8d4-59a0-43f0-a610-be7bd5350ad9
1212736547__ExtractLRealudiE
uliM$0ffc8285-5cf0-4854-bfbf-cfca06799935
3132572671__HelpRealConvertpnBeginnDigdBegindDivbNeg
nHelpBegindDiff$e6a8a736-c389-4a55-8363-2e30c26fed79û
Ads a message to the log, if the message is longer then 127 characters it 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
4018939086LOGSTR/ use UDINT_TO_DWORD( CmpLog.LogClass.LOG_.... )msgCtrlMask( Usage example: ' Ammount of tests : %s' msgFmtStr Usage example: uiTestAmmountstrArg uiMaxSizesTextiCharPos$4faf44db-355b-4967-8254-5b291732f959[ Removes leading spaces from the character string and returns the reduced character string.
1900748652 F_LTrim¡$6ef917e6-7f9e-46f0-99fd-87a9a9b883ad¢O Truncates all trailing spaces from the specified value and returns the result.£
3142262884¤F_RTrim¥$29c1cd9e-70b7-43a9-8e3e-f8e8ed84bff7¦d The F_ToLCase function converts a specified string to lowercase.
Contains portions of OSCAT BASIC§ 886767803¨ F_ToLCase©posª$4177f901-1a7a-4eea-8fe8-63097fea53f3« 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 ®STR1¯/ String whose position is searched in ``STR1`` °STR2±pszComp1²pszComp2³$182b0d71-64b9-4f59-8550-dfdea6ddbf15´ <category>Project information</category>
* <description>
* 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.
* </description>
* <element name="stProjectName" type="OUT">Project name without ending</element>
* <element name="stTitle" type="OUT">Title</element>
* <element name="stVersion" type="OUT">Version as string in the format "x.x.x.x"</element>
* <element name="stAuthor" type="OUT">Author</element>
* <element name="stDescription" type="OUT">Description</element>
µ
3365268717¶PROJECT_INFO· stProject¸stTitle¹ stVersionºstAuthor»
stDescription¼
1178342348½$c1e43dbd-7721-4bd4-a684-c21620fe030f¾cmpapp, 3.5.14.0 (system)¿8 reads the application info from the current applicationÀ
3589885213ÁGetCurProjInfoÂCMPAPPÃCmpAppÄpCurAppÅAPPLICATIONÆpCurProjInfoÇ
1186304137ÈGETCURPROJINFOÉ$a1b4b1d0-961b-443c-bfbc-d2cb7b8d4e24Ê
3673772398Ë
1934937439Ì
2447250513Í
4156868057Î
3449547646Ï6F_RemoveInstancePathAndProjectNameFromTestInstancePathÐCharacterPositionOfProjectNameÑProjectNameWithDotÒ$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 ÝudiStateÞR 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 ðszNameñMAX_LEN_APPLNAMEò7Version 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øÈ 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]
ù
2972623772úCONCATû1 String 1 to be concatenated, max. 255 charactersü1 String 2 to be concatenated, max. 255 charactersý¯ 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.þ
1972422664ÿBYTE_TO_HEXSTR) The decimal number requiring conversion.. Minimum number of displayed digits (digits).
iPrecision[ This parameter determines whether lower or upper case letters are used in the conversion. bLoCase
m_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 549027355MEMCPYdestAddrCAAPVOIDsrcAddr$7d591bcc-b453-4853-8327-1622b58624cc; Realize a target specific data type for general pointers.
2208387490¡ Prefix: p ¢$607a79a2-c60b-4e09-b161-a4f6d8099b00£4caa 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.
¥
3242817338¦F_AnyTypeClassToString§AnyTypeClass¨$9e1352f3-5f86-40fd-88db-b6807b901391©Ê 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]
ª
2091238964«LEN¬ String to be analyzed STR®$d60923f9-da06-44f9-ab52-de513236e3e2¯O Funktion to get own task handle
:return: Returns the current IEC task handle°
4249138636±IecTaskGetCurrent²K Pointer that returns the runtime system error code (see CmpErrors.library)³$b1d506b4-a9e7-4ec3-8e73-e6697d723ffb´t Function returns the task information of the specified task
:return: Return a pointer to the task info structureµ
4205902187¶IecTaskGetInfo3· Handle to the specified task¸hIecTask¹ptiº$941fd632-1e71-4fc0-a13a-6074eb0adf1c»
2092783167¼F_AnyToUnionValue½AnyValue.pValue¾AnyValue__pValue¿AnyValue.TypeClassÀAnyValue__typeClassÁAnyValue.diSizeÂAnyValue__sizeOfÃAnyValueÄ$04a97242-7600-4a30-a234-b9e3b1c2770cÅ
3394829069ÆF_IsAnyEqualToUnionValueÇuExpectedOrActualÈExpectedOrActual.pValueÉExpectedOrActual__pValueÊExpectedOrActual.TypeClassËExpectedOrActual__typeClassÌExpectedOrActual.diSizeÍExpectedOrActual__sizeOfÎExpectedOrActualÏAnyExpectedOrActualÐ$1ab30776-5b8c-4eb4-8ece-b0c087a9b905Ñç 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]
Ò
3595690875ÓLEFTÔ String to be analyzedÕ Number of characters ÖSIZE×$305543de-642d-43ec-a366-8f771da1539dØj Close a file specified by handle
:return: Returns the runtime system error code (see CmpErrors.library)Ù
3248367802ÚSysFileCloseÛ Handle of the fileÜhFileÝ$81419da6-4d52-4d99-806c-f8e599dcca66Þsysfile, 3.5.9.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à
4264633759áSysFileOpenâ 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 (\\)!ãszFileäÎ | 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 åamæ= Pointer to runtime system error code (see CmpErrors.library)ç$4e9f3f6c-f1b2-41f5-8e6e-4c9d0f916cb0è\ Read number of bytes out of the file
:return: Number of bytes read from file. 0=if failedé
3409369966êSysFileReadë Handle of the file ì Pointer to buffer for read dataí pbyBufferîL Number of bytes to read from file. Must be less or equal the buffer size! ïulSizeð$db542d11-09a1-412e-ba36-040235d1f6a6ñ 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ò
4012792623óSysFileWriteô/ 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÷
4221632325øLicenseFunctionsùdwStructSizeúpfGetUserLicenseValueûpfConfDynLicChallengeüpfReqDynLicChallengeý
1958349117þLICENSEFUNCTIONSÿ$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
musBoxMask¡mulBoxSerial¢ mflFiCtrl£mulFirmCode¤musFirmAccessCounter¥musFirmItemRef¦mulFirmUpdateCounter§mulFirmPreciseTime¨mausFirmItemText©mulProductCodeª
mulFeatureMap«mulUnitCounter¬mulLicenseQuantitymusProductItemRef®
3504795969¯$b624d05d-ae57-4b33-b835-ddb290871f29°<Structure, NonVirtual, Compiled, Typified, Located, Internal±ignore_link_all²
3026495541³"CodeMGetFeatureMapByFirmcode_local´%Compiled, Typified, Located, Internalµ$8c1740e2-dc30-4803-9b05-2837c6a74377¶
2158031774·myUDINT_TO_STRING¸i2¹bytº$126f9170-8764-47f4-b18b-ad639b548e48»
1069101478¼CMAddComponent½pszComponent¾udiCmpId¿
udiVersionÀ$90843a1a-36bb-40cc-8a00-b137a07f82ddÁ
1408105662ÂSysFileGetSizeByHandleÃ$203db6ac-ecc2-4b85-b1e0-d533c0597079ÄØ <description>
Test and set a bit in an ULONG variable in one processor step. This operation is to provide
a multitasking save operation.
</description>
<result><p>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
</p></result>Å
3306130432ÆSysCpuTestAndSetÇ <param name="pulValue" type="IN">Pointer to the unsigned value to test and set a bit inside in one atomic
processor step</param> ÈpulValueÉp <param name="ulBit" type="IN">Bit number inside the variable to test and set. 0=first bit, 31=last bit</param> ÊulBitË$1b91f178-37d6-463f-a613-9f24443e9396Ì!syscpuhandling, 3.5.13.0 (system)Í
2702096027ÎmySTRING_TO_UDINTÏuiBaseÐ$7c03f9aa-a908-4345-8fdc-2902079aa956Ѻ 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]
Ò 176614815ÓMIDÔ, Number of characters, counted from the leftÕ& Start position for the partial stringÖPOS×$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]
Ù
1359190538ÚRIGHTÛ Number of characters ÜiResultÝ$e1f7857b-7abd-48e8-91d6-d6b740f939c9ÞB This function runs all test suites that have been initialized.
ß 740068242àRUNá$bd49b256-e7ba-4b73-b669-380d1f428417âc
This function declares a new test (if it has not been already declared in an earlier cycle)
ã
2860862278äTESTåCounterTestSuiteAddressæCounterTestNameç$8dd61791-c583-4b5e-b392-3e0ecf487849è 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í__ExtractRealRawîC The mantissa as stored in the REAL, without the leading bit 24 setïpudið$3d3aa07e-b7ec-4780-af79-d77e0e2cb50fñ
1475096513ò__HelpLConvertó$26023af2-e263-44c0-b290-4197ca6caa6aô 202956791õ__ExtractLRealRawöpuli÷uliø$e543e1fd-2bb8-4ac1-a749-ebad37d711fcùÑ 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]
ú 517832753ûREPLACEü# String of which a part is replacedý) String which replaces a part of ``STR1``þ) Number of characters, counting from leftÿLs 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_LogCMPLOGCmpLogLOGTYPESLogTypesLT_STDhLogCreated
3954219779¡ST_LOG¢$6fa083cf-0816-49b4-9f1f-643d3266b682£ADDLOGENTRY¤PRVCREATENEWLOGGER¥? registers a Log component in devicelog and accept log messages¦
2253974937§CmpCfLog¨hCmp©
hStdLoggerªResult«vendorId¬cmpId
3274057501®CMPCFLOG¯$e54b0b42-bf68-4a14-aacc-2136ead10c0b°
3109562382±
1341592248²FB_Init³P if TRUE, the instance afterwards gets moved into the copy code (online change) ´$4b49c03c-b562-4a6d-a8a9-76b527f97a0eµ
1919457194¶AddLogEntry·
udiClassId¸
udiErrorId¹ udiInfoIdº$f39143e0-de49-4075-8bca-59cb6ff62612» 281198645¼FB_Exit½$3ba547bb-218f-4ecb-aa09-3033908bd527¾
2650069375¿
1638336279À
3519561854ÁprvCreateNewLoggerÂ$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]
Ä
1739723417ÅDELETEÆ String to be modfiedÇA Length of the partial string to be deleted, number of charactersÈZ Position in ``STR`` after which the deletion starts. Counted from left,
starting with 1ÉindexResultÊbSkipË$11510cc9-b7a0-4dd6-8600-402b1638691eÌ
1693369342ÍTO_LOWERÎ$1e55f1d2-e8f8-4c11-a343-0d7e1cf88411Ï
2665969477Ð
AppGetCurrentÑ$7b15c08a-0653-4e21-bae0-a0b9c0885693Ò
1239233586ÓAppGetApplicationInfoÔAPPLICATION_INFOÕpAppÖ$a1d0114c-e318-46c3-9f61-93c7e287c132×Ï <category>Application information</category>
* <description>
* Contains the application information as specified in the application property dialog in CoDeSys.
* </description>
* <element name="pstProjectName" type="OUT">Pointer project name</element>
* <element name="pstAuthor" type="OUT">Pointer to author</element>
* <element name="pstVersion" type="OUT">Pointer to version as string in the format "x.x.x.x"</element>
* <element name="pstDescription" type="OUT">Pointer to description</element>
* <element name="pstProfile" type="OUT">Pointer to used CoDeSys profile name</element>
* <element name="dtLastChanges" type="OUT">Time and date of last modification of the application (UTC)</element>
Ø
2334584805ÙpstProjectNameÚ pstAuthorÛ
pstVersionÜpstDescriptionÝ
pstProfileÞ
dtLastChangesß
3658178702à$d8358556-d5ee-4109-b0bb-55d3f6ee3e15á
2020938782âPrintfã. The buffer, where the result will be returnedä cbpResultå" The capacity of the result bufferæuiResultCapacityç0 The format string used for formatting the valueè cbpFormatéV 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ï 711891942ðIecTaskGetInfo2_Internalñ TASK_INFOò$c6d3a5e1-7385-4753-b73c-f3b0df563229ó
2900023005ô tIntervalõ
tWatchdogTimeö
tCycleTime÷tAverageCycleTimeø
tMaxCycleTimeù
tMinCycleTimeú
3657274649û$b83e07ab-a3d0-41a5-8f83-2de38b279984ü
1673363469ýFctConfDynLicChallengeþ$f9972cfc-8a33-4e40-85fb-7109a5d893d5ÿ
2401095727FctGetUserLicenseValue$c20edd8e-8e57-4f8a-87df-58345eb4164f
2469315043FctReqDynLicChallenge$a38e7aa2-cfa8-41d5-adf5-85021e7b5eaa
1900323445CMUnregisterLicenseFunctions$f1a79dd5-021a-4cf4-ad25-7ec56df08e56CodeMGetContentByFirmcode_local
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 flawsm4export_nosignature 120951582
StuSprintf the formatstring pstFormat¡2 the address of the variable that shall be printed¢8 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 bytes¦dwBufferSize§$4933794d-6fe5-4285-9a7e-ea7baab7d3f3¨stringutils, 3.5.14.0 (system)©
1908096708ª"I_TestResultFormatter__Struct__257«GLocal, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy, Typified¬
1713818289"I_TESTRESULTFORMATTER__STRUCT__257®=Structure, NonVirtual, Generated, Compiled, Typified, Located¯
2646927996°%I_AssertMessageFormatter__Struct__437±
3579290701²%I_ASSERTMESSAGEFORMATTER__STRUCT__437³__download__code´__online__change__codeµglobal__init¶__bInitRetains·__Index¸
__bInCopyCode¹GLOBAL__EXITº"__DATASEGMENTFLAGS__224__GVL__Init»$36b719e5-3a34-450b-b806-362248c6fc69¼#__COMPILE_CONSTANTS__225__GVL__Init½$db173c48-0431-4ee2-8080-d72c759a68e3¾__WATCHVARS__226__GVL__Init¿$e4086481-b65b-4bfc-821c-c1f278b8711dÀ1__ALLOCATEDIMPLICITREFERENCETYPES__227__GVL__InitÁ$4e6b58d5-7a7d-4d43-b710-af56f2531e62Â#CONSTANTS__228__SYSTEM____GVL__InitÃ$c912f995-f4b5-48bd-9416-f36b0846c0e1ÄTYPE_CLASS__399__GVL__InitÅ$f4fafa0b-0199-4a4a-82c6-354c2db388c0Æ$_IMPLICIT_KINDOFTASK__582__GVL__InitÇ$071b2dea-1a86-5d57-8ce3-3f8b7f1f1b55È/_IMPLICIT_TASK_CONFIG_VARIABLES__985__GVL__InitÉ$91c9263a-862c-5f16-92ba-ff58510973daÊ/_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__InitË$0de9e5f1-f2f0-4550-99b9-b0c9c5d532d1Ì!__APPLICATIONNAME__138__GVL__InitÍ$7e624f9d-69d6-42d1-923c-54726d605ee6Î%__TASKSPECIFICINFOGVL__139__GVL__InitÏ$90165385-435d-46ce-bd91-03a9cc5300c5Ð__TYPECLASS__989__GVL__InitÑ$93b6cd3f-8269-4c38-ace2-cca38ff00963Ò&__CONVERSION_CONSTANTS__994__GVL__InitÓ __Left__2Ô,Local, IsCompiled, Absolut, NoInit, ImplicitÕ
__Right__3Ö$8282e63e-5bdc-4a17-9c51-c6019a0fc9eb×(__LCONVERSION_CONSTANTS__1076__GVL__InitØ$7b8ad65d-ee2e-4a1e-8258-daddee07b488Ù __SETUP__CALL__POU__1__GVL__InitÚPRG_TEST__598__GVL__InitÛAPPLICATION_CONTENTÜ Offsets in stringtable!ÝSizeOfÞudiInfoSizeßudiInfoVersionà uiNumPOUsá uiNumDUTsâ uiNumGVLsãuiNumFBsäuiNumMethodså uiNumLibsæarPOUsçMinusèarDUTséarGVLsêarFBsë arMethodsìarLibsístringtableîOutput, IsCompiledïInput, IsCompiledðInput, IsCompiled, ImplicitñCompiledòNonVirtual, Generated, Compiledó1Structure, Generated, Compiled, Typified, LocatedôRemovedAfterDownloadõ__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
2121841030__COMPILE_CONSTANTSsystem_variable__CONTAINS_COPY_CODEAReplacedConstant, Constant, Global, IsCompiled, Absolut, Typified 629370838__WatchVarsCompiled, Typified, Internal72176917!__AllocatedImplicitReferenceTypes'Generated, Compiled, Typified, Internal
3976988861 Constants Like x86, ARM etc¡
bLittleEndian¢A the runtime version number as defined by the device description.£RuntimeVersion¤<Constant, Global, IsCompiled, Absolut, Initialized, Typified¥S the compiler version as defined in the build options (not OEM Customized Version!)¦CompilerVersion§. TRUE if project is running in simulation mode¨bSimulationMode©e Number of Bits per Register. Possible values: 16 (c16x, 186), 32 (x86, ARM, PPC ...), 64 (x86-64Bit)ª
nRegisterSize«a the pack mode as defined in the device description. Should match to the pack mode of the runtime¬ nPackMode Does the target support an FPU®bFPUSupport¯4 the runtime version coded in the nibbles of a DWORD°RuntimeVersionNumeric±5 the compiler version coded in the nibbles of a DWORD²CompilerVersionNumeric³( Does the target support multiple cores?´bMulticoreSupportµR The optimal vector size for a vector of lreals, or 1 if no vectors are available.¶vcOptimalLREAL·Q The optimal vector size for a vector of reals, or 1 if no vectors are available.¸
vcOptimalREAL¹)Compiled, Typified, SystemNamespaceForcedº 997431391» TYPE_BOOL¼TYPE_BIT½ TYPE_BYTE¾ TYPE_WORD¿
TYPE_DWORDÀ
TYPE_LWORDÁ TYPE_SINTÂTYPE_INTÃ TYPE_DINTÄ TYPE_LINTÅ
TYPE_USINTÆ TYPE_UINTÇ
TYPE_UDINTÈ
TYPE_ULINTÉ TYPE_REALÊ
TYPE_LREALËTYPE_STRINGÌTYPE_WSTRINGÍ TYPE_TIMEÎ TYPE_DATEÏTYPE_DATEANDTIMEÐTYPE_TIMEOFDAYÑTYPE_POINTERÒTYPE_REFERENCEÓ
TYPE_SUBRANGEÔ TYPE_ENUMÕ
TYPE_ARRAYÖTYPE_PARAMS×TYPE_USERDEFØ TYPE_NONEÙTYPE_ANYÚTYPE_ANYBITÛTYPE_ANYDATEÜTYPE_ANYINTÝTYPE_ANYNUMÞTYPE_ANYREALß TYPE_LAZYà
TYPE_LTIMEá
TYPE_BITCONSTâ
3708279434ã_Implicit_KindOfTaskä_implicit_cyclicå_implicit_eventæ_implicit_externalç_implicit_freewheelingè_implicit_parentsyncéno_precompile_checksê
2361088820ë_Implicit_Task_Config_Variablesì$166ce3b9-d8b4-4ebd-8cff-b06fc4f725eaí__APPLICATIONNAMEî__ApplicationNameïTaskð__task_string_tableñ2Global, IsCompiled, Absolut, Initialized, Typifiedò$__Implicit_Jitter_Distribution_Arrayó__CYCLE__CODE__TASKô__Taskõig_task_config_infoö'Compiled, InhibitOnlineChange, Typified÷__ArrayData__994__2ø__ApplicationInfoVariablesùno_initú
appContentû?Constant, Global, IsCompiled, Absolut, NoInit, NoCopy, Typifiedü__BlobInit__1153__0ý__DataSegmentInfoVariablesþinit_on_onlchangeÿarrdataSegments dataSegments __BlobInit__994__0 __BlobInit__994__1 IMPLICIT__DEFINITIONS POU__0__START__ADDRESS
-Global, IsCompiled, Absolut, NoInit, Implicit POU__1__START__ADDRESS POU__52__START__ADDRESS POU__136__START__ADDRESS POU__140__START__ADDRESS POU__141__START__ADDRESS POU__144__START__ADDRESS POU__145__START__ADDRESS POU__146__START__ADDRESS POU__147__START__ADDRESS POU__148__START__ADDRESS POU__597__START__ADDRESS POU__149__START__ADDRESS POU__150__START__ADDRESS POU__151__START__ADDRESS POU__153__START__ADDRESS POU__154__START__ADDRESS POU__155__START__ADDRESS POU__156__START__ADDRESS POU__157__START__ADDRESS POU__158__START__ADDRESS POU__159__START__ADDRESS POU__160__START__ADDRESS POU__164__START__ADDRESS POU__169__START__ADDRESS POU__174__START__ADDRESS POU__179__START__ADDRESS POU__184__START__ADDRESS¡ POU__189__START__ADDRESS¢ POU__194__START__ADDRESS£ POU__199__START__ADDRESS¤ POU__204__START__ADDRESS¥ POU__209__START__ADDRESS¦ POU__214__START__ADDRESS§ POU__216__START__ADDRESS¨ POU__220__START__ADDRESS© POU__222__START__ADDRESSª POU__223__START__ADDRESS« POU__229__START__ADDRESS¬ POU__230__START__ADDRESS POU__231__START__ADDRESS® POU__232__START__ADDRESS¯ POU__251__START__ADDRESS° POU__255__START__ADDRESS± POU__256__START__ADDRESS² POU__253__START__ADDRESS³ POU__252__START__ADDRESS´ POU__254__START__ADDRESSµ POU__259__START__ADDRESS¶ POU__239__START__ADDRESS· POU__243__START__ADDRESS¸ POU__241__START__ADDRESS¹ POU__240__START__ADDRESSº POU__244__START__ADDRESS» POU__242__START__ADDRESS¼ POU__339__START__ADDRESS½ POU__335__START__ADDRESS¾ POU__332__START__ADDRESS¿ POU__334__START__ADDRESSÀ POU__333__START__ADDRESSÁ POU__331__START__ADDRESSÂ POU__357__START__ADDRESSÃ POU__350__START__ADDRESSÄ POU__354__START__ADDRESSÅ POU__352__START__ADDRESSÆ POU__351__START__ADDRESSÇ POU__360__START__ADDRESSÈ POU__358__START__ADDRESSÉ POU__356__START__ADDRESSÊ POU__353__START__ADDRESSË POU__355__START__ADDRESSÌ POU__359__START__ADDRESSÍ POU__371__START__ADDRESSÎ POU__368__START__ADDRESSÏ POU__370__START__ADDRESSÐ POU__369__START__ADDRESSÑ POU__367__START__ADDRESSÒ POU__395__START__ADDRESSÓ POU__392__START__ADDRESSÔ POU__398__START__ADDRESSÕ POU__380__START__ADDRESSÖ POU__378__START__ADDRESS× POU__385__START__ADDRESSØ POU__383__START__ADDRESSÙ POU__388__START__ADDRESSÚ POU__379__START__ADDRESSÛ POU__381__START__ADDRESSÜ POU__384__START__ADDRESSÝ POU__387__START__ADDRESSÞ POU__386__START__ADDRESSß POU__389__START__ADDRESSà POU__382__START__ADDRESSá POU__420__START__ADDRESSâ POU__424__START__ADDRESSã POU__408__START__ADDRESSä POU__406__START__ADDRESSå POU__413__START__ADDRESSæ POU__416__START__ADDRESSç POU__407__START__ADDRESSè POU__409__START__ADDRESSé POU__412__START__ADDRESSê POU__415__START__ADDRESSë POU__414__START__ADDRESSì POU__417__START__ADDRESSí POU__411__START__ADDRESSî POU__410__START__ADDRESSï POU__431__START__ADDRESSð POU__435__START__ADDRESSñ POU__433__START__ADDRESSò POU__432__START__ADDRESSó POU__436__START__ADDRESSô POU__434__START__ADDRESSõ POU__439__START__ADDRESSö POU__267__START__ADDRESS÷ POU__275__START__ADDRESSø POU__293__START__ADDRESSù POU__291__START__ADDRESSú POU__306__START__ADDRESSû POU__311__START__ADDRESSü POU__315__START__ADDRESSý POU__318__START__ADDRESSþ POU__278__START__ADDRESSÿ POU__322__START__ADDRESS!POU__313__START__ADDRESS!POU__289__START__ADDRESS!POU__266__START__ADDRESS!POU__300__START__ADDRESS!POU__269__START__ADDRESS
!POU__292__START__ADDRESS!POU__308__START__ADDRESS!POU__312__START__ADDRESS!POU__279__START__ADDRESS!POU__301__START__ADDRESS!POU__276__START__ADDRESS!POU__290__START__ADDRESS!POU__271__START__ADDRESS!POU__317__START__ADDRESS!POU__274__START__ADDRESS!POU__299__START__ADDRESS!POU__319__START__ADDRESS!POU__295__START__ADDRESS!POU__304__START__ADDRESS!POU__309__START__ADDRESS!POU__302__START__ADDRESS!POU__286__START__ADDRESS!POU__307__START__ADDRESS!POU__296__START__ADDRESS!POU__283__START__ADDRESS!POU__298__START__ADDRESS!POU__316__START__ADDRESS!POU__297__START__ADDRESS!POU__287__START__ADDRESS!POU__281__START__ADDRESS!POU__314__START__ADDRESS!POU__282__START__ADDRESS !POU__284__START__ADDRESS¡!POU__310__START__ADDRESS¢!POU__303__START__ADDRESS£!POU__273__START__ADDRESS¤!POU__320__START__ADDRESS¥!POU__277__START__ADDRESS¦!POU__270__START__ADDRESS§!POU__285__START__ADDRESS¨!POU__280__START__ADDRESS©!POU__268__START__ADDRESSª!POU__294__START__ADDRESS«!POU__272__START__ADDRESS¬!POU__321__START__ADDRESS!POU__323__START__ADDRESS®!POU__288__START__ADDRESS¯!POU__305__START__ADDRESS°!POU__342__START__ADDRESS±!POU__451__START__ADDRESS²!POU__448__START__ADDRESS³!POU__450__START__ADDRESS´!POU__449__START__ADDRESSµ!POU__447__START__ADDRESS¶!POU__456__START__ADDRESS·!POU__467__START__ADDRESS¸!POU__464__START__ADDRESS¹!POU__466__START__ADDRESSº!POU__465__START__ADDRESS»!POU__463__START__ADDRESS¼!POU__517__START__ADDRESS½!POU__519__START__ADDRESS¾!POU__520__START__ADDRESS¿!POU__521__START__ADDRESSÀ!POU__510__START__ADDRESSÁ!POU__511__START__ADDRESSÂ!POU__516__START__ADDRESSÃ!POU__515__START__ADDRESSÄ!POU__514__START__ADDRESSÅ!POU__508__START__ADDRESSÆ!POU__512__START__ADDRESSÇ!POU__518__START__ADDRESSÈ!POU__509__START__ADDRESSÉ!POU__513__START__ADDRESSÊ!POU__494__START__ADDRESSË!POU__486__START__ADDRESSÌ!POU__491__START__ADDRESSÍ!POU__495__START__ADDRESSÎ!POU__492__START__ADDRESSÏ!POU__498__START__ADDRESSÐ!POU__497__START__ADDRESSÑ!POU__501__START__ADDRESSÒ!POU__493__START__ADDRESSÓ!POU__487__START__ADDRESSÔ!POU__485__START__ADDRESSÕ!POU__489__START__ADDRESSÖ!POU__496__START__ADDRESS×!POU__499__START__ADDRESSØ!POU__490__START__ADDRESSÙ!POU__500__START__ADDRESSÚ!POU__488__START__ADDRESSÛ!POU__532__START__ADDRESSÜ!POU__530__START__ADDRESSÝ!POU__535__START__ADDRESSÞ!POU__537__START__ADDRESSß!POU__534__START__ADDRESSà!POU__531__START__ADDRESSá!POU__538__START__ADDRESSâ!POU__536__START__ADDRESSã!POU__533__START__ADDRESSä!POU__478__START__ADDRESSå!POU__475__START__ADDRESSæ!POU__477__START__ADDRESSç!POU__476__START__ADDRESSè!POU__474__START__ADDRESSé!POU__550__START__ADDRESSê!POU__565__START__ADDRESSë!POU__563__START__ADDRESSì!POU__568__START__ADDRESSí!POU__560__START__ADDRESSî!POU__555__START__ADDRESSï!POU__556__START__ADDRESSð!POU__564__START__ADDRESSñ!POU__552__START__ADDRESSò!POU__547__START__ADDRESSó!POU__554__START__ADDRESSô!POU__561__START__ADDRESSõ!POU__567__START__ADDRESSö!POU__562__START__ADDRESS÷!POU__551__START__ADDRESSø!POU__557__START__ADDRESSù!POU__558__START__ADDRESSú!POU__553__START__ADDRESSû!POU__548__START__ADDRESSü!POU__559__START__ADDRESSý!POU__549__START__ADDRESSþ!POU__569__START__ADDRESSÿ!POU__566__START__ADDRESS"POU__572__START__ADDRESS"POU__576__START__ADDRESS"POU__581__START__ADDRESS"POU__587__START__ADDRESS"POU__592__START__ADDRESS
"POU__628__START__ADDRESS"POU__620__START__ADDRESS"POU__624__START__ADDRESS"POU__653__START__ADDRESS"POU__645__START__ADDRESS"POU__615__START__ADDRESS"POU__629__START__ADDRESS"POU__616__START__ADDRESS"POU__610__START__ADDRESS"POU__622__START__ADDRESS"POU__623__START__ADDRESS"POU__631__START__ADDRESS"POU__654__START__ADDRESS"POU__642__START__ADDRESS"POU__617__START__ADDRESS"POU__637__START__ADDRESS"POU__609__START__ADDRESS"POU__625__START__ADDRESS"POU__607__START__ADDRESS"POU__606__START__ADDRESS"POU__612__START__ADDRESS"POU__632__START__ADDRESS"POU__651__START__ADDRESS"POU__634__START__ADDRESS"POU__613__START__ADDRESS"POU__646__START__ADDRESS"POU__640__START__ADDRESS "POU__655__START__ADDRESS¡"POU__638__START__ADDRESS¢"POU__652__START__ADDRESS£"POU__639__START__ADDRESS¤"POU__643__START__ADDRESS¥"POU__611__START__ADDRESS¦"POU__635__START__ADDRESS§"POU__626__START__ADDRESS¨"POU__633__START__ADDRESS©"POU__619__START__ADDRESSª"POU__627__START__ADDRESS«"POU__636__START__ADDRESS¬"POU__608__START__ADDRESS"POU__630__START__ADDRESS®"POU__650__START__ADDRESS¯"POU__618__START__ADDRESS°"POU__621__START__ADDRESS±"POU__649__START__ADDRESS²"POU__644__START__ADDRESS³"POU__648__START__ADDRESS´"POU__614__START__ADDRESSµ"POU__647__START__ADDRESS¶"POU__641__START__ADDRESS·"POU__668__START__ADDRESS¸"POU__664__START__ADDRESS¹"POU__672__START__ADDRESSº"POU__669__START__ADDRESS»"POU__667__START__ADDRESS¼"POU__665__START__ADDRESS½"POU__671__START__ADDRESS¾"POU__666__START__ADDRESS¿"POU__670__START__ADDRESSÀ"POU__663__START__ADDRESSÁ"POU__683__START__ADDRESSÂ"POU__681__START__ADDRESSÃ"POU__685__START__ADDRESSÄ"POU__682__START__ADDRESSÅ"POU__684__START__ADDRESSÆ"POU__686__START__ADDRESSÇ"POU__680__START__ADDRESSÈ"POU__702__START__ADDRESSÉ"POU__695__START__ADDRESSÊ"POU__703__START__ADDRESSË"POU__701__START__ADDRESSÌ"POU__696__START__ADDRESSÍ"POU__698__START__ADDRESSÎ"POU__700__START__ADDRESSÏ"POU__697__START__ADDRESSÐ"POU__699__START__ADDRESSÑ"POU__694__START__ADDRESSÒ"POU__763__START__ADDRESSÓ"POU__736__START__ADDRESSÔ"POU__718__START__ADDRESSÕ"POU__757__START__ADDRESSÖ"POU__750__START__ADDRESS×"POU__761__START__ADDRESSØ"POU__762__START__ADDRESSÙ"POU__712__START__ADDRESSÚ"POU__722__START__ADDRESSÛ"POU__759__START__ADDRESSÜ"POU__747__START__ADDRESSÝ"POU__760__START__ADDRESSÞ"POU__749__START__ADDRESSß"POU__772__START__ADDRESSà"POU__726__START__ADDRESSá"POU__753__START__ADDRESSâ"POU__752__START__ADDRESSã"POU__744__START__ADDRESSä"POU__754__START__ADDRESSå"POU__764__START__ADDRESSæ"POU__769__START__ADDRESSç"POU__758__START__ADDRESSè"POU__734__START__ADDRESSé"POU__755__START__ADDRESSê"POU__733__START__ADDRESSë"POU__719__START__ADDRESSì"POU__730__START__ADDRESSí"POU__743__START__ADDRESSî"POU__739__START__ADDRESSï"POU__720__START__ADDRESSð"POU__725__START__ADDRESSñ"POU__740__START__ADDRESSò"POU__723__START__ADDRESSó"POU__756__START__ADDRESSô"POU__735__START__ADDRESSõ"POU__771__START__ADDRESSö"POU__727__START__ADDRESS÷"POU__731__START__ADDRESSø"POU__716__START__ADDRESSù"POU__751__START__ADDRESSú"POU__770__START__ADDRESSû"POU__748__START__ADDRESSü"POU__717__START__ADDRESSý"POU__721__START__ADDRESSþ"POU__714__START__ADDRESSÿ"POU__711__START__ADDRESS#POU__715__START__ADDRESS#POU__765__START__ADDRESS#POU__738__START__ADDRESS#POU__713__START__ADDRESS#POU__729__START__ADDRESS
#POU__737__START__ADDRESS#POU__746__START__ADDRESS#POU__742__START__ADDRESS#POU__768__START__ADDRESS#POU__728__START__ADDRESS#POU__773__START__ADDRESS#POU__724__START__ADDRESS#POU__745__START__ADDRESS#POU__767__START__ADDRESS#POU__741__START__ADDRESS#POU__732__START__ADDRESS#POU__766__START__ADDRESS#POU__788__START__ADDRESS#POU__782__START__ADDRESS#POU__786__START__ADDRESS#POU__787__START__ADDRESS#POU__785__START__ADDRESS#POU__783__START__ADDRESS#POU__784__START__ADDRESS#POU__781__START__ADDRESS#POU__830__START__ADDRESS#POU__811__START__ADDRESS#POU__839__START__ADDRESS#POU__838__START__ADDRESS#POU__806__START__ADDRESS#POU__826__START__ADDRESS#POU__802__START__ADDRESS #POU__821__START__ADDRESS¡#POU__820__START__ADDRESS¢#POU__810__START__ADDRESS£#POU__798__START__ADDRESS¤#POU__835__START__ADDRESS¥#POU__828__START__ADDRESS¦#POU__831__START__ADDRESS§#POU__819__START__ADDRESS¨#POU__808__START__ADDRESS©#POU__841__START__ADDRESSª#POU__814__START__ADDRESS«#POU__843__START__ADDRESS¬#POU__805__START__ADDRESS#POU__842__START__ADDRESS®#POU__833__START__ADDRESS¯#POU__824__START__ADDRESS°#POU__797__START__ADDRESS±#POU__817__START__ADDRESS²#POU__800__START__ADDRESS³#POU__827__START__ADDRESS´#POU__807__START__ADDRESSµ#POU__832__START__ADDRESS¶#POU__812__START__ADDRESS·#POU__822__START__ADDRESS¸#POU__823__START__ADDRESS¹#POU__825__START__ADDRESSº#POU__796__START__ADDRESS»#POU__829__START__ADDRESS¼#POU__799__START__ADDRESS½#POU__818__START__ADDRESS¾#POU__816__START__ADDRESS¿#POU__815__START__ADDRESSÀ#POU__840__START__ADDRESSÁ#POU__834__START__ADDRESSÂ#POU__809__START__ADDRESSÃ#POU__801__START__ADDRESSÄ#POU__803__START__ADDRESSÅ#POU__836__START__ADDRESSÆ#POU__804__START__ADDRESSÇ#POU__837__START__ADDRESSÈ#POU__813__START__ADDRESSÉ#POU__852__START__ADDRESSÊ#POU__856__START__ADDRESSË#POU__857__START__ADDRESSÌ#POU__854__START__ADDRESSÍ#POU__853__START__ADDRESSÎ#POU__855__START__ADDRESSÏ#POU__851__START__ADDRESSÐ#POU__876__START__ADDRESSÑ#POU__871__START__ADDRESSÒ#POU__880__START__ADDRESSÓ#POU__889__START__ADDRESSÔ#POU__883__START__ADDRESSÕ#POU__894__START__ADDRESSÖ#POU__869__START__ADDRESS×#POU__886__START__ADDRESSØ#POU__892__START__ADDRESSÙ#POU__884__START__ADDRESSÚ#POU__867__START__ADDRESSÛ#POU__865__START__ADDRESSÜ#POU__875__START__ADDRESSÝ#POU__873__START__ADDRESSÞ#POU__879__START__ADDRESSß#POU__874__START__ADDRESSà#POU__866__START__ADDRESSá#POU__891__START__ADDRESSâ#POU__870__START__ADDRESSã#POU__885__START__ADDRESSä#POU__881__START__ADDRESSå#POU__893__START__ADDRESSæ#POU__887__START__ADDRESSç#POU__872__START__ADDRESSè#POU__888__START__ADDRESSé#POU__878__START__ADDRESSê#POU__882__START__ADDRESSë#POU__868__START__ADDRESSì#POU__890__START__ADDRESSí#POU__877__START__ADDRESSî#POU__903__START__ADDRESSï#POU__908__START__ADDRESSð#POU__905__START__ADDRESSñ#POU__904__START__ADDRESSò#POU__907__START__ADDRESSó#POU__906__START__ADDRESSô#POU__902__START__ADDRESSõ#POU__935__START__ADDRESSö#POU__932__START__ADDRESS÷#POU__934__START__ADDRESSø#POU__933__START__ADDRESSù#POU__931__START__ADDRESSú#POU__919__START__ADDRESSû#POU__917__START__ADDRESSü#POU__923__START__ADDRESSý#POU__920__START__ADDRESSþ#POU__918__START__ADDRESSÿ#POU__922__START__ADDRESS$POU__921__START__ADDRESS$POU__924__START__ADDRESS$POU__916__START__ADDRESS$POU__944__START__ADDRESS$POU__949__START__ADDRESS
$POU__946__START__ADDRESS$POU__945__START__ADDRESS$POU__948__START__ADDRESS$POU__947__START__ADDRESS$POU__943__START__ADDRESS$POU__961__START__ADDRESS$POU__958__START__ADDRESS$POU__962__START__ADDRESS$POU__963__START__ADDRESS$POU__964__START__ADDRESS$POU__959__START__ADDRESS$POU__960__START__ADDRESS$POU__957__START__ADDRESS$POU__965__START__ADDRESS$POU__974__START__ADDRESS$POU__978__START__ADDRESS$POU__976__START__ADDRESS$POU__975__START__ADDRESS$POU__977__START__ADDRESS$POU__973__START__ADDRESS$POU__598__START__ADDRESS$POU__984__START__ADDRESS$POU__990__START__ADDRESS$POU__991__START__ADDRESS$POU__992__START__ADDRESS$POU__993__START__ADDRESS$POU__995__START__ADDRESS $POU__996__START__ADDRESS¡$POU__997__START__ADDRESS¢$POU__998__START__ADDRESS£$POU__999__START__ADDRESS¤$POU__1000__START__ADDRESS¥$POU__1001__START__ADDRESS¦$POU__1002__START__ADDRESS§$POU__1003__START__ADDRESS¨$POU__1018__START__ADDRESS©$POU__1015__START__ADDRESSª$POU__1012__START__ADDRESS«$POU__1014__START__ADDRESS¬$POU__1013__START__ADDRESS$POU__1011__START__ADDRESS®$POU__1004__START__ADDRESS¯$POU__1021__START__ADDRESS°$POU__1023__START__ADDRESS±$POU__1024__START__ADDRESS²$POU__1025__START__ADDRESS³$POU__1026__START__ADDRESS´$POU__1027__START__ADDRESSµ$POU__1028__START__ADDRESS¶$POU__1030__START__ADDRESS·$POU__1031__START__ADDRESS¸$POU__1033__START__ADDRESS¹$POU__1034__START__ADDRESSº$POU__1035__START__ADDRESS»$POU__1036__START__ADDRESS¼$POU__1045__START__ADDRESS½$POU__1046__START__ADDRESS¾$POU__1049__START__ADDRESS¿$POU__1053__START__ADDRESSÀ$POU__1057__START__ADDRESSÁ$POU__1054__START__ADDRESSÂ$POU__1058__START__ADDRESSÃ$POU__1067__START__ADDRESSÄ$POU__1068__START__ADDRESSÅ$POU__1069__START__ADDRESSÆ$POU__1070__START__ADDRESSÇ$POU__1071__START__ADDRESSÈ$POU__1072__START__ADDRESSÉ$POU__1073__START__ADDRESSÊ$POU__1074__START__ADDRESSË$POU__1075__START__ADDRESSÌ$POU__1077__START__ADDRESSÍ$POU__1084__START__ADDRESSÎ$POU__1081__START__ADDRESSÏ$POU__1092__START__ADDRESSÐ$POU__1090__START__ADDRESSÑ$POU__1096__START__ADDRESSÒ$POU__1094__START__ADDRESSÓ$POU__1095__START__ADDRESSÔ$POU__1091__START__ADDRESSÕ$POU__1093__START__ADDRESSÖ$POU__1097__START__ADDRESS×$POU__1098__START__ADDRESSØ$POU__1099__START__ADDRESSÙ$POU__1104__START__ADDRESSÚ$POU__1105__START__ADDRESSÛ$POU__1109__START__ADDRESSÜ$POU__1110__START__ADDRESSÝ$POU__1111__START__ADDRESSÞ$POU__1112__START__ADDRESSß$POU__1128__START__ADDRESSà$POU__1129__START__ADDRESSá$POU__1130__START__ADDRESSâ$POU__1131__START__ADDRESSã$POU__1132__START__ADDRESSä$POU__1133__START__ADDRESSå$POU__1134__START__ADDRESSæ$POU__1135__START__ADDRESSç$POU__1136__START__ADDRESSè$POU__1137__START__ADDRESSé$POU__1138__START__ADDRESSê$POU__1139__START__ADDRESSë$POU__1140__START__ADDRESSì$POU__1141__START__ADDRESSí$POU__1142__START__ADDRESSî$POU__1143__START__ADDRESSï$POU__1144__START__ADDRESSð$POU__1145__START__ADDRESSñ$POU__1146__START__ADDRESSò$POU__1147__START__ADDRESSó$%NoInit, Generated, Compiled, Internalô$__GLOBAL_RELOC_DEFINITIONSõ$__RELOCATIONTABLEö$-Global, IsCompiled, Absolut, NoInit, Typified÷$__RELOCATIONTABLENEWø$%Global, IsCompiled, Absolut, Typifiedù$
2061191735ú$_Implicit_Target_Info_Variablesû$__targetInfoü$Compiled, SuperGlobal, Typifiedý$
3724943997þ$__ParentApplicationNameÿ$
2535173239%__TaskSpecificInfoGVL%taskSpecificInfos%taskEntryAddress%taskInfoInvalid% NUM_TASKS
%MAX_STACK_SIZE%
3459977258%__TypeClass%__TYPECLASS%%Enum, Compiled, SuperGlobal, Typified%contains_blobinitconst%
3183657202%
blobinitconst%initial_value_crc%
4251903600%E%
4043848204%FDEZ%
EXP_MASK_REAL%EXP_OFFSET_REAL%MANT_MASK_REAL%RES_EXP_REAL%
EXP_BIAS_REAL%NAN_REAL% PINF_REAL% NINF_REAL%
3735606965%__LCONVERSION_CONSTANTS%EXP_MASK_LREAL%EXP_OFFSET_LREAL%MANT_MASK_LREAL%
RES_EXP_LREAL %EXP_BIAS_LREAL¡% NAN_LREAL¢%
PINF_LREAL£%
NINF_LREAL¤%CODE__INIT__VFTABLES¥%VFTABLE__245¦%VFTABLE__233§%VFTABLE__325¨%VFTABLE__344©%VFTABLE__361ª%VFTABLE__372«%VFTABLE__400¬%VFTABLE__425%VFTABLE__261®%VFTABLE__441¯%VFTABLE__457°%VFTABLE__502±%VFTABLE__479²%VFTABLE__524³%VFTABLE__468´%VFTABLE__542µ%VFTABLE__599¶%VFTABLE__656·%VFTABLE__673¸%VFTABLE__687¹%VFTABLE__704º%VFTABLE__774»%VFTABLE__789¼%VFTABLE__844½%VFTABLE__858¾%VFTABLE__895¿%VFTABLE__925À%VFTABLE__909Á%VFTABLE__936Â%VFTABLE__950Ã%VFTABLE__966Ä%
VFTABLE__1005Å%
VFTABLE__1085Æ%/NoInit, NoCopy, Compiled, SuperGlobal, TypifiedÇ%IMPLICIT_FUNCTION_POINTERSÈ%SIGNATURE__0__FP__ADDRESSÉ%#Global, IsCompiled, Absolut, NoInitÊ%SIGNATURE__1__FP__ADDRESSË%SIGNATURE__2__FP__ADDRESSÌ%SIGNATURE__3__FP__ADDRESSÍ%SIGNATURE__4__FP__ADDRESSÎ%SIGNATURE__5__FP__ADDRESSÏ%SIGNATURE__6__FP__ADDRESSÐ%SIGNATURE__7__FP__ADDRESSÑ%SIGNATURE__8__FP__ADDRESSÒ%SIGNATURE__9__FP__ADDRESSÓ%SIGNATURE__10__FP__ADDRESSÔ%SIGNATURE__11__FP__ADDRESSÕ%SIGNATURE__12__FP__ADDRESSÖ%SIGNATURE__13__FP__ADDRESS×%SIGNATURE__14__FP__ADDRESSØ%SIGNATURE__15__FP__ADDRESSÙ%SIGNATURE__16__FP__ADDRESSÚ%SIGNATURE__17__FP__ADDRESSÛ%SIGNATURE__18__FP__ADDRESSÜ%SIGNATURE__19__FP__ADDRESSÝ%SIGNATURE__20__FP__ADDRESSÞ%SIGNATURE__21__FP__ADDRESSß%SIGNATURE__22__FP__ADDRESSà%SIGNATURE__23__FP__ADDRESSá%SIGNATURE__24__FP__ADDRESSâ%SIGNATURE__25__FP__ADDRESSã%SIGNATURE__26__FP__ADDRESSä%SIGNATURE__27__FP__ADDRESSå%SIGNATURE__28__FP__ADDRESSæ%SIGNATURE__29__FP__ADDRESSç%SIGNATURE__30__FP__ADDRESSè%SIGNATURE__31__FP__ADDRESSé%SIGNATURE__32__FP__ADDRESSê%SIGNATURE__33__FP__ADDRESSë%SIGNATURE__34__FP__ADDRESSì%SIGNATURE__35__FP__ADDRESSí%SIGNATURE__36__FP__ADDRESSî%SIGNATURE__37__FP__ADDRESSï%SIGNATURE__38__FP__ADDRESSð%SIGNATURE__39__FP__ADDRESSñ%SIGNATURE__40__FP__ADDRESSò%SIGNATURE__41__FP__ADDRESSó%SIGNATURE__42__FP__ADDRESSô%SIGNATURE__43__FP__ADDRESSõ%SIGNATURE__44__FP__ADDRESSö%SIGNATURE__45__FP__ADDRESS÷%SIGNATURE__46__FP__ADDRESSø%SIGNATURE__47__FP__ADDRESSù%SIGNATURE__48__FP__ADDRESSú%SIGNATURE__52__FP__ADDRESSû%SIGNATURE__53__FP__ADDRESSü%SIGNATURE__54__FP__ADDRESSý%SIGNATURE__55__FP__ADDRESSþ%SIGNATURE__56__FP__ADDRESSÿ%SIGNATURE__57__FP__ADDRESS&SIGNATURE__58__FP__ADDRESS&SIGNATURE__59__FP__ADDRESS&SIGNATURE__60__FP__ADDRESS&SIGNATURE__61__FP__ADDRESS&SIGNATURE__62__FP__ADDRESS
&SIGNATURE__63__FP__ADDRESS&SIGNATURE__64__FP__ADDRESS&SIGNATURE__65__FP__ADDRESS&SIGNATURE__66__FP__ADDRESS&SIGNATURE__67__FP__ADDRESS&SIGNATURE__68__FP__ADDRESS&SIGNATURE__69__FP__ADDRESS&SIGNATURE__70__FP__ADDRESS&SIGNATURE__71__FP__ADDRESS&SIGNATURE__72__FP__ADDRESS&SIGNATURE__73__FP__ADDRESS&SIGNATURE__74__FP__ADDRESS&SIGNATURE__75__FP__ADDRESS&SIGNATURE__76__FP__ADDRESS&SIGNATURE__77__FP__ADDRESS&SIGNATURE__78__FP__ADDRESS&SIGNATURE__79__FP__ADDRESS&SIGNATURE__80__FP__ADDRESS&SIGNATURE__81__FP__ADDRESS&SIGNATURE__82__FP__ADDRESS&SIGNATURE__83__FP__ADDRESS&SIGNATURE__84__FP__ADDRESS&SIGNATURE__85__FP__ADDRESS&SIGNATURE__86__FP__ADDRESS&SIGNATURE__87__FP__ADDRESS&SIGNATURE__88__FP__ADDRESS&SIGNATURE__89__FP__ADDRESS &SIGNATURE__90__FP__ADDRESS¡&SIGNATURE__91__FP__ADDRESS¢&SIGNATURE__92__FP__ADDRESS£&SIGNATURE__93__FP__ADDRESS¤&SIGNATURE__94__FP__ADDRESS¥&SIGNATURE__95__FP__ADDRESS¦&SIGNATURE__96__FP__ADDRESS§&SIGNATURE__97__FP__ADDRESS¨&SIGNATURE__98__FP__ADDRESS©&SIGNATURE__99__FP__ADDRESSª&SIGNATURE__100__FP__ADDRESS«&SIGNATURE__101__FP__ADDRESS¬&SIGNATURE__102__FP__ADDRESS&SIGNATURE__103__FP__ADDRESS®&SIGNATURE__104__FP__ADDRESS¯&SIGNATURE__105__FP__ADDRESS°&SIGNATURE__106__FP__ADDRESS±&SIGNATURE__107__FP__ADDRESS²&SIGNATURE__108__FP__ADDRESS³&SIGNATURE__109__FP__ADDRESS´&SIGNATURE__110__FP__ADDRESSµ&SIGNATURE__111__FP__ADDRESS¶&SIGNATURE__112__FP__ADDRESS·&SIGNATURE__113__FP__ADDRESS¸&SIGNATURE__114__FP__ADDRESS¹&SIGNATURE__115__FP__ADDRESSº&SIGNATURE__116__FP__ADDRESS»&SIGNATURE__117__FP__ADDRESS¼&SIGNATURE__118__FP__ADDRESS½&SIGNATURE__119__FP__ADDRESS¾&SIGNATURE__120__FP__ADDRESS¿&SIGNATURE__121__FP__ADDRESSÀ&SIGNATURE__122__FP__ADDRESSÁ&SIGNATURE__123__FP__ADDRESSÂ&SIGNATURE__124__FP__ADDRESSÃ&SIGNATURE__125__FP__ADDRESSÄ&SIGNATURE__126__FP__ADDRESSÅ&SIGNATURE__127__FP__ADDRESSÆ&SIGNATURE__128__FP__ADDRESSÇ&SIGNATURE__129__FP__ADDRESSÈ&SIGNATURE__130__FP__ADDRESSÉ&SIGNATURE__131__FP__ADDRESSÊ&SIGNATURE__132__FP__ADDRESSË&SIGNATURE__133__FP__ADDRESSÌ&SIGNATURE__134__FP__ADDRESSÍ&SIGNATURE__135__FP__ADDRESSÎ&SIGNATURE__136__FP__ADDRESSÏ&SIGNATURE__140__FP__ADDRESSÐ&SIGNATURE__141__FP__ADDRESSÑ&SIGNATURE__144__FP__ADDRESSÒ&SIGNATURE__145__FP__ADDRESSÓ&SIGNATURE__146__FP__ADDRESSÔ&SIGNATURE__147__FP__ADDRESSÕ&SIGNATURE__148__FP__ADDRESSÖ&SIGNATURE__597__FP__ADDRESS×&SIGNATURE__596__FP__ADDRESSØ&SIGNATURE__149__FP__ADDRESSÙ&SIGNATURE__150__FP__ADDRESSÚ&SIGNATURE__151__FP__ADDRESSÛ&SIGNATURE__153__FP__ADDRESSÜ&SIGNATURE__154__FP__ADDRESSÝ&SIGNATURE__155__FP__ADDRESSÞ&SIGNATURE__156__FP__ADDRESSß&SIGNATURE__157__FP__ADDRESSà&SIGNATURE__158__FP__ADDRESSá&SIGNATURE__159__FP__ADDRESSâ&SIGNATURE__160__FP__ADDRESSã&SIGNATURE__164__FP__ADDRESSä&SIGNATURE__165__FP__ADDRESSå&SIGNATURE__169__FP__ADDRESSæ&SIGNATURE__170__FP__ADDRESSç&SIGNATURE__174__FP__ADDRESSè&SIGNATURE__175__FP__ADDRESSé&SIGNATURE__179__FP__ADDRESSê&SIGNATURE__180__FP__ADDRESSë&SIGNATURE__184__FP__ADDRESSì&SIGNATURE__185__FP__ADDRESSí&SIGNATURE__189__FP__ADDRESSî&SIGNATURE__190__FP__ADDRESSï&SIGNATURE__194__FP__ADDRESSð&SIGNATURE__195__FP__ADDRESSñ&SIGNATURE__199__FP__ADDRESSò&SIGNATURE__200__FP__ADDRESSó&SIGNATURE__204__FP__ADDRESSô&SIGNATURE__205__FP__ADDRESSõ&SIGNATURE__209__FP__ADDRESSö&SIGNATURE__210__FP__ADDRESS÷&SIGNATURE__214__FP__ADDRESSø&SIGNATURE__215__FP__ADDRESSù&SIGNATURE__216__FP__ADDRESSú&SIGNATURE__220__FP__ADDRESSû&SIGNATURE__221__FP__ADDRESSü&SIGNATURE__222__FP__ADDRESSý&SIGNATURE__223__FP__ADDRESSþ&SIGNATURE__229__FP__ADDRESSÿ&SIGNATURE__230__FP__ADDRESS'SIGNATURE__231__FP__ADDRESS'SIGNATURE__232__FP__ADDRESS'SIGNATURE__251__FP__ADDRESS'SIGNATURE__255__FP__ADDRESS'SIGNATURE__256__FP__ADDRESS
'SIGNATURE__253__FP__ADDRESS'SIGNATURE__252__FP__ADDRESS'SIGNATURE__254__FP__ADDRESS'SIGNATURE__259__FP__ADDRESS'SIGNATURE__239__FP__ADDRESS'SIGNATURE__243__FP__ADDRESS'SIGNATURE__241__FP__ADDRESS'SIGNATURE__240__FP__ADDRESS'SIGNATURE__244__FP__ADDRESS'SIGNATURE__242__FP__ADDRESS'SIGNATURE__339__FP__ADDRESS'SIGNATURE__335__FP__ADDRESS'SIGNATURE__332__FP__ADDRESS'SIGNATURE__334__FP__ADDRESS'SIGNATURE__333__FP__ADDRESS'SIGNATURE__331__FP__ADDRESS'SIGNATURE__357__FP__ADDRESS'SIGNATURE__350__FP__ADDRESS'SIGNATURE__354__FP__ADDRESS'SIGNATURE__352__FP__ADDRESS'SIGNATURE__351__FP__ADDRESS'SIGNATURE__360__FP__ADDRESS'SIGNATURE__358__FP__ADDRESS'SIGNATURE__356__FP__ADDRESS'SIGNATURE__353__FP__ADDRESS'SIGNATURE__355__FP__ADDRESS'SIGNATURE__359__FP__ADDRESS 'SIGNATURE__371__FP__ADDRESS¡'SIGNATURE__368__FP__ADDRESS¢'SIGNATURE__370__FP__ADDRESS£'SIGNATURE__369__FP__ADDRESS¤'SIGNATURE__367__FP__ADDRESS¥'SIGNATURE__395__FP__ADDRESS¦'SIGNATURE__392__FP__ADDRESS§'SIGNATURE__398__FP__ADDRESS¨'SIGNATURE__380__FP__ADDRESS©'SIGNATURE__378__FP__ADDRESSª'SIGNATURE__385__FP__ADDRESS«'SIGNATURE__383__FP__ADDRESS¬'SIGNATURE__388__FP__ADDRESS'SIGNATURE__379__FP__ADDRESS®'SIGNATURE__381__FP__ADDRESS¯'SIGNATURE__384__FP__ADDRESS°'SIGNATURE__387__FP__ADDRESS±'SIGNATURE__386__FP__ADDRESS²'SIGNATURE__389__FP__ADDRESS³'SIGNATURE__382__FP__ADDRESS´'SIGNATURE__420__FP__ADDRESSµ'SIGNATURE__424__FP__ADDRESS¶'SIGNATURE__408__FP__ADDRESS·'SIGNATURE__406__FP__ADDRESS¸'SIGNATURE__413__FP__ADDRESS¹'SIGNATURE__416__FP__ADDRESSº'SIGNATURE__407__FP__ADDRESS»'SIGNATURE__409__FP__ADDRESS¼'SIGNATURE__412__FP__ADDRESS½'SIGNATURE__415__FP__ADDRESS¾'SIGNATURE__414__FP__ADDRESS¿'SIGNATURE__417__FP__ADDRESSÀ'SIGNATURE__411__FP__ADDRESSÁ'SIGNATURE__410__FP__ADDRESSÂ'SIGNATURE__431__FP__ADDRESSÃ'SIGNATURE__435__FP__ADDRESSÄ'SIGNATURE__433__FP__ADDRESSÅ'SIGNATURE__432__FP__ADDRESSÆ'SIGNATURE__436__FP__ADDRESSÇ'SIGNATURE__434__FP__ADDRESSÈ'SIGNATURE__439__FP__ADDRESSÉ'SIGNATURE__267__FP__ADDRESSÊ'SIGNATURE__275__FP__ADDRESSË'SIGNATURE__293__FP__ADDRESSÌ'SIGNATURE__291__FP__ADDRESSÍ'SIGNATURE__306__FP__ADDRESSÎ'SIGNATURE__311__FP__ADDRESSÏ'SIGNATURE__315__FP__ADDRESSÐ'SIGNATURE__318__FP__ADDRESSÑ'SIGNATURE__278__FP__ADDRESSÒ'SIGNATURE__322__FP__ADDRESSÓ'SIGNATURE__313__FP__ADDRESSÔ'SIGNATURE__289__FP__ADDRESSÕ'SIGNATURE__266__FP__ADDRESSÖ'SIGNATURE__300__FP__ADDRESS×'SIGNATURE__269__FP__ADDRESSØ'SIGNATURE__292__FP__ADDRESSÙ'SIGNATURE__308__FP__ADDRESSÚ'SIGNATURE__312__FP__ADDRESSÛ'SIGNATURE__279__FP__ADDRESSÜ'SIGNATURE__301__FP__ADDRESSÝ'SIGNATURE__276__FP__ADDRESSÞ'SIGNATURE__290__FP__ADDRESSß'SIGNATURE__271__FP__ADDRESSà'SIGNATURE__317__FP__ADDRESSá'SIGNATURE__274__FP__ADDRESSâ'SIGNATURE__299__FP__ADDRESSã'SIGNATURE__319__FP__ADDRESSä'SIGNATURE__295__FP__ADDRESSå'SIGNATURE__304__FP__ADDRESSæ'SIGNATURE__309__FP__ADDRESSç'SIGNATURE__302__FP__ADDRESSè'SIGNATURE__286__FP__ADDRESSé'SIGNATURE__307__FP__ADDRESSê'SIGNATURE__296__FP__ADDRESSë'SIGNATURE__283__FP__ADDRESSì'SIGNATURE__298__FP__ADDRESSí'SIGNATURE__316__FP__ADDRESSî'SIGNATURE__297__FP__ADDRESSï'SIGNATURE__287__FP__ADDRESSð'SIGNATURE__281__FP__ADDRESSñ'SIGNATURE__314__FP__ADDRESSò'SIGNATURE__282__FP__ADDRESSó'SIGNATURE__284__FP__ADDRESSô'SIGNATURE__310__FP__ADDRESSõ'SIGNATURE__303__FP__ADDRESSö'SIGNATURE__273__FP__ADDRESS÷'SIGNATURE__320__FP__ADDRESSø'SIGNATURE__277__FP__ADDRESSù'SIGNATURE__270__FP__ADDRESSú'SIGNATURE__285__FP__ADDRESSû'SIGNATURE__280__FP__ADDRESSü'SIGNATURE__268__FP__ADDRESSý'SIGNATURE__294__FP__ADDRESSþ'SIGNATURE__272__FP__ADDRESSÿ'SIGNATURE__321__FP__ADDRESS(SIGNATURE__323__FP__ADDRESS(SIGNATURE__288__FP__ADDRESS(SIGNATURE__305__FP__ADDRESS(SIGNATURE__342__FP__ADDRESS(SIGNATURE__451__FP__ADDRESS
(SIGNATURE__448__FP__ADDRESS(SIGNATURE__450__FP__ADDRESS(SIGNATURE__449__FP__ADDRESS(SIGNATURE__447__FP__ADDRESS(SIGNATURE__456__FP__ADDRESS(SIGNATURE__455__FP__ADDRESS(SIGNATURE__467__FP__ADDRESS(SIGNATURE__464__FP__ADDRESS(SIGNATURE__466__FP__ADDRESS(SIGNATURE__465__FP__ADDRESS(SIGNATURE__463__FP__ADDRESS(SIGNATURE__517__FP__ADDRESS(SIGNATURE__519__FP__ADDRESS(SIGNATURE__520__FP__ADDRESS(SIGNATURE__521__FP__ADDRESS(SIGNATURE__510__FP__ADDRESS(SIGNATURE__511__FP__ADDRESS(SIGNATURE__516__FP__ADDRESS(SIGNATURE__515__FP__ADDRESS(SIGNATURE__514__FP__ADDRESS(SIGNATURE__508__FP__ADDRESS(SIGNATURE__512__FP__ADDRESS(SIGNATURE__518__FP__ADDRESS(SIGNATURE__509__FP__ADDRESS(SIGNATURE__513__FP__ADDRESS(SIGNATURE__494__FP__ADDRESS(SIGNATURE__486__FP__ADDRESS (SIGNATURE__491__FP__ADDRESS¡(SIGNATURE__495__FP__ADDRESS¢(SIGNATURE__492__FP__ADDRESS£(SIGNATURE__498__FP__ADDRESS¤(SIGNATURE__497__FP__ADDRESS¥(SIGNATURE__501__FP__ADDRESS¦(SIGNATURE__493__FP__ADDRESS§(SIGNATURE__487__FP__ADDRESS¨(SIGNATURE__485__FP__ADDRESS©(SIGNATURE__489__FP__ADDRESSª(SIGNATURE__496__FP__ADDRESS«(SIGNATURE__499__FP__ADDRESS¬(SIGNATURE__490__FP__ADDRESS(SIGNATURE__500__FP__ADDRESS®(SIGNATURE__488__FP__ADDRESS¯(SIGNATURE__532__FP__ADDRESS°(SIGNATURE__530__FP__ADDRESS±(SIGNATURE__535__FP__ADDRESS²(SIGNATURE__537__FP__ADDRESS³(SIGNATURE__534__FP__ADDRESS´(SIGNATURE__531__FP__ADDRESSµ(SIGNATURE__538__FP__ADDRESS¶(SIGNATURE__536__FP__ADDRESS·(SIGNATURE__533__FP__ADDRESS¸(SIGNATURE__478__FP__ADDRESS¹(SIGNATURE__475__FP__ADDRESSº(SIGNATURE__477__FP__ADDRESS»(SIGNATURE__476__FP__ADDRESS¼(SIGNATURE__474__FP__ADDRESS½(SIGNATURE__550__FP__ADDRESS¾(SIGNATURE__565__FP__ADDRESS¿(SIGNATURE__563__FP__ADDRESSÀ(SIGNATURE__568__FP__ADDRESSÁ(SIGNATURE__560__FP__ADDRESSÂ(SIGNATURE__555__FP__ADDRESSÃ(SIGNATURE__556__FP__ADDRESSÄ(SIGNATURE__564__FP__ADDRESSÅ(SIGNATURE__552__FP__ADDRESSÆ(SIGNATURE__547__FP__ADDRESSÇ(SIGNATURE__554__FP__ADDRESSÈ(SIGNATURE__561__FP__ADDRESSÉ(SIGNATURE__567__FP__ADDRESSÊ(SIGNATURE__562__FP__ADDRESSË(SIGNATURE__551__FP__ADDRESSÌ(SIGNATURE__557__FP__ADDRESSÍ(SIGNATURE__558__FP__ADDRESSÎ(SIGNATURE__553__FP__ADDRESSÏ(SIGNATURE__548__FP__ADDRESSÐ(SIGNATURE__559__FP__ADDRESSÑ(SIGNATURE__549__FP__ADDRESSÒ(SIGNATURE__569__FP__ADDRESSÓ(SIGNATURE__566__FP__ADDRESSÔ(SIGNATURE__572__FP__ADDRESSÕ(SIGNATURE__576__FP__ADDRESSÖ(SIGNATURE__581__FP__ADDRESS×(SIGNATURE__580__FP__ADDRESSØ(SIGNATURE__587__FP__ADDRESSÙ(SIGNATURE__586__FP__ADDRESSÚ(SIGNATURE__592__FP__ADDRESSÛ(SIGNATURE__591__FP__ADDRESSÜ(SIGNATURE__628__FP__ADDRESSÝ(SIGNATURE__620__FP__ADDRESSÞ(SIGNATURE__624__FP__ADDRESSß(SIGNATURE__653__FP__ADDRESSà(SIGNATURE__645__FP__ADDRESSá(SIGNATURE__615__FP__ADDRESSâ(SIGNATURE__629__FP__ADDRESSã(SIGNATURE__616__FP__ADDRESSä(SIGNATURE__610__FP__ADDRESSå(SIGNATURE__622__FP__ADDRESSæ(SIGNATURE__623__FP__ADDRESSç(SIGNATURE__631__FP__ADDRESSè(SIGNATURE__654__FP__ADDRESSé(SIGNATURE__642__FP__ADDRESSê(SIGNATURE__617__FP__ADDRESSë(SIGNATURE__637__FP__ADDRESSì(SIGNATURE__609__FP__ADDRESSí(SIGNATURE__625__FP__ADDRESSî(SIGNATURE__607__FP__ADDRESSï(SIGNATURE__606__FP__ADDRESSð(SIGNATURE__612__FP__ADDRESSñ(SIGNATURE__632__FP__ADDRESSò(SIGNATURE__651__FP__ADDRESSó(SIGNATURE__634__FP__ADDRESSô(SIGNATURE__613__FP__ADDRESSõ(SIGNATURE__646__FP__ADDRESSö(SIGNATURE__640__FP__ADDRESS÷(SIGNATURE__655__FP__ADDRESSø(SIGNATURE__638__FP__ADDRESSù(SIGNATURE__652__FP__ADDRESSú(SIGNATURE__639__FP__ADDRESSû(SIGNATURE__643__FP__ADDRESSü(SIGNATURE__611__FP__ADDRESSý(SIGNATURE__635__FP__ADDRESSþ(SIGNATURE__626__FP__ADDRESSÿ(SIGNATURE__633__FP__ADDRESS)SIGNATURE__619__FP__ADDRESS)SIGNATURE__627__FP__ADDRESS)SIGNATURE__636__FP__ADDRESS)SIGNATURE__608__FP__ADDRESS)SIGNATURE__630__FP__ADDRESS
)SIGNATURE__650__FP__ADDRESS)SIGNATURE__618__FP__ADDRESS)SIGNATURE__621__FP__ADDRESS)SIGNATURE__649__FP__ADDRESS)SIGNATURE__644__FP__ADDRESS)SIGNATURE__648__FP__ADDRESS)SIGNATURE__614__FP__ADDRESS)SIGNATURE__647__FP__ADDRESS)SIGNATURE__641__FP__ADDRESS)SIGNATURE__668__FP__ADDRESS)SIGNATURE__664__FP__ADDRESS)SIGNATURE__672__FP__ADDRESS)SIGNATURE__669__FP__ADDRESS)SIGNATURE__667__FP__ADDRESS)SIGNATURE__665__FP__ADDRESS)SIGNATURE__671__FP__ADDRESS)SIGNATURE__666__FP__ADDRESS)SIGNATURE__670__FP__ADDRESS)SIGNATURE__663__FP__ADDRESS)SIGNATURE__683__FP__ADDRESS)SIGNATURE__681__FP__ADDRESS)SIGNATURE__685__FP__ADDRESS)SIGNATURE__682__FP__ADDRESS)SIGNATURE__684__FP__ADDRESS)SIGNATURE__686__FP__ADDRESS)SIGNATURE__680__FP__ADDRESS)SIGNATURE__702__FP__ADDRESS )SIGNATURE__695__FP__ADDRESS¡)SIGNATURE__703__FP__ADDRESS¢)SIGNATURE__701__FP__ADDRESS£)SIGNATURE__696__FP__ADDRESS¤)SIGNATURE__698__FP__ADDRESS¥)SIGNATURE__700__FP__ADDRESS¦)SIGNATURE__697__FP__ADDRESS§)SIGNATURE__699__FP__ADDRESS¨)SIGNATURE__694__FP__ADDRESS©)SIGNATURE__763__FP__ADDRESSª)SIGNATURE__736__FP__ADDRESS«)SIGNATURE__718__FP__ADDRESS¬)SIGNATURE__757__FP__ADDRESS)SIGNATURE__750__FP__ADDRESS®)SIGNATURE__761__FP__ADDRESS¯)SIGNATURE__762__FP__ADDRESS°)SIGNATURE__712__FP__ADDRESS±)SIGNATURE__722__FP__ADDRESS²)SIGNATURE__759__FP__ADDRESS³)SIGNATURE__747__FP__ADDRESS´)SIGNATURE__760__FP__ADDRESSµ)SIGNATURE__749__FP__ADDRESS¶)SIGNATURE__772__FP__ADDRESS·)SIGNATURE__726__FP__ADDRESS¸)SIGNATURE__753__FP__ADDRESS¹)SIGNATURE__752__FP__ADDRESSº)SIGNATURE__744__FP__ADDRESS»)SIGNATURE__754__FP__ADDRESS¼)SIGNATURE__764__FP__ADDRESS½)SIGNATURE__769__FP__ADDRESS¾)SIGNATURE__758__FP__ADDRESS¿)SIGNATURE__734__FP__ADDRESSÀ)SIGNATURE__755__FP__ADDRESSÁ)SIGNATURE__733__FP__ADDRESSÂ)SIGNATURE__719__FP__ADDRESSÃ)SIGNATURE__730__FP__ADDRESSÄ)SIGNATURE__743__FP__ADDRESSÅ)SIGNATURE__739__FP__ADDRESSÆ)SIGNATURE__720__FP__ADDRESSÇ)SIGNATURE__725__FP__ADDRESSÈ)SIGNATURE__740__FP__ADDRESSÉ)SIGNATURE__723__FP__ADDRESSÊ)SIGNATURE__756__FP__ADDRESSË)SIGNATURE__735__FP__ADDRESSÌ)SIGNATURE__771__FP__ADDRESSÍ)SIGNATURE__727__FP__ADDRESSÎ)SIGNATURE__731__FP__ADDRESSÏ)SIGNATURE__716__FP__ADDRESSÐ)SIGNATURE__751__FP__ADDRESSÑ)SIGNATURE__770__FP__ADDRESSÒ)SIGNATURE__748__FP__ADDRESSÓ)SIGNATURE__717__FP__ADDRESSÔ)SIGNATURE__721__FP__ADDRESSÕ)SIGNATURE__714__FP__ADDRESSÖ)SIGNATURE__711__FP__ADDRESS×)SIGNATURE__715__FP__ADDRESSØ)SIGNATURE__765__FP__ADDRESSÙ)SIGNATURE__738__FP__ADDRESSÚ)SIGNATURE__713__FP__ADDRESSÛ)SIGNATURE__729__FP__ADDRESSÜ)SIGNATURE__737__FP__ADDRESSÝ)SIGNATURE__746__FP__ADDRESSÞ)SIGNATURE__742__FP__ADDRESSß)SIGNATURE__768__FP__ADDRESSà)SIGNATURE__728__FP__ADDRESSá)SIGNATURE__773__FP__ADDRESSâ)SIGNATURE__724__FP__ADDRESSã)SIGNATURE__745__FP__ADDRESSä)SIGNATURE__767__FP__ADDRESSå)SIGNATURE__741__FP__ADDRESSæ)SIGNATURE__732__FP__ADDRESSç)SIGNATURE__766__FP__ADDRESSè)SIGNATURE__788__FP__ADDRESSé)SIGNATURE__782__FP__ADDRESSê)SIGNATURE__786__FP__ADDRESSë)SIGNATURE__787__FP__ADDRESSì)SIGNATURE__785__FP__ADDRESSí)SIGNATURE__783__FP__ADDRESSî)SIGNATURE__784__FP__ADDRESSï)SIGNATURE__781__FP__ADDRESSð)SIGNATURE__830__FP__ADDRESSñ)SIGNATURE__811__FP__ADDRESSò)SIGNATURE__839__FP__ADDRESSó)SIGNATURE__838__FP__ADDRESSô)SIGNATURE__806__FP__ADDRESSõ)SIGNATURE__826__FP__ADDRESSö)SIGNATURE__802__FP__ADDRESS÷)SIGNATURE__821__FP__ADDRESSø)SIGNATURE__820__FP__ADDRESSù)SIGNATURE__810__FP__ADDRESSú)SIGNATURE__798__FP__ADDRESSû)SIGNATURE__835__FP__ADDRESSü)SIGNATURE__828__FP__ADDRESSý)SIGNATURE__831__FP__ADDRESSþ)SIGNATURE__819__FP__ADDRESSÿ)SIGNATURE__808__FP__ADDRESS*SIGNATURE__841__FP__ADDRESS*SIGNATURE__814__FP__ADDRESS*SIGNATURE__843__FP__ADDRESS*SIGNATURE__805__FP__ADDRESS*SIGNATURE__842__FP__ADDRESS
*SIGNATURE__833__FP__ADDRESS*SIGNATURE__824__FP__ADDRESS*SIGNATURE__797__FP__ADDRESS*SIGNATURE__817__FP__ADDRESS*SIGNATURE__800__FP__ADDRESS*SIGNATURE__827__FP__ADDRESS*SIGNATURE__807__FP__ADDRESS*SIGNATURE__832__FP__ADDRESS*SIGNATURE__812__FP__ADDRESS*SIGNATURE__822__FP__ADDRESS*SIGNATURE__823__FP__ADDRESS*SIGNATURE__825__FP__ADDRESS*SIGNATURE__796__FP__ADDRESS*SIGNATURE__829__FP__ADDRESS*SIGNATURE__799__FP__ADDRESS*SIGNATURE__818__FP__ADDRESS*SIGNATURE__816__FP__ADDRESS*SIGNATURE__815__FP__ADDRESS*SIGNATURE__840__FP__ADDRESS*SIGNATURE__834__FP__ADDRESS*SIGNATURE__809__FP__ADDRESS*SIGNATURE__801__FP__ADDRESS*SIGNATURE__803__FP__ADDRESS*SIGNATURE__836__FP__ADDRESS*SIGNATURE__804__FP__ADDRESS*SIGNATURE__837__FP__ADDRESS*SIGNATURE__813__FP__ADDRESS *SIGNATURE__852__FP__ADDRESS¡*SIGNATURE__856__FP__ADDRESS¢*SIGNATURE__857__FP__ADDRESS£*SIGNATURE__854__FP__ADDRESS¤*SIGNATURE__853__FP__ADDRESS¥*SIGNATURE__855__FP__ADDRESS¦*SIGNATURE__851__FP__ADDRESS§*SIGNATURE__876__FP__ADDRESS¨*SIGNATURE__871__FP__ADDRESS©*SIGNATURE__880__FP__ADDRESSª*SIGNATURE__889__FP__ADDRESS«*SIGNATURE__883__FP__ADDRESS¬*SIGNATURE__894__FP__ADDRESS*SIGNATURE__869__FP__ADDRESS®*SIGNATURE__886__FP__ADDRESS¯*SIGNATURE__892__FP__ADDRESS°*SIGNATURE__884__FP__ADDRESS±*SIGNATURE__867__FP__ADDRESS²*SIGNATURE__865__FP__ADDRESS³*SIGNATURE__875__FP__ADDRESS´*SIGNATURE__873__FP__ADDRESSµ*SIGNATURE__879__FP__ADDRESS¶*SIGNATURE__874__FP__ADDRESS·*SIGNATURE__866__FP__ADDRESS¸*SIGNATURE__891__FP__ADDRESS¹*SIGNATURE__870__FP__ADDRESSº*SIGNATURE__885__FP__ADDRESS»*SIGNATURE__881__FP__ADDRESS¼*SIGNATURE__893__FP__ADDRESS½*SIGNATURE__887__FP__ADDRESS¾*SIGNATURE__872__FP__ADDRESS¿*SIGNATURE__888__FP__ADDRESSÀ*SIGNATURE__878__FP__ADDRESSÁ*SIGNATURE__882__FP__ADDRESSÂ*SIGNATURE__868__FP__ADDRESSÃ*SIGNATURE__890__FP__ADDRESSÄ*SIGNATURE__877__FP__ADDRESSÅ*SIGNATURE__903__FP__ADDRESSÆ*SIGNATURE__908__FP__ADDRESSÇ*SIGNATURE__905__FP__ADDRESSÈ*SIGNATURE__904__FP__ADDRESSÉ*SIGNATURE__907__FP__ADDRESSÊ*SIGNATURE__906__FP__ADDRESSË*SIGNATURE__902__FP__ADDRESSÌ*SIGNATURE__935__FP__ADDRESSÍ*SIGNATURE__932__FP__ADDRESSÎ*SIGNATURE__934__FP__ADDRESSÏ*SIGNATURE__933__FP__ADDRESSÐ*SIGNATURE__931__FP__ADDRESSÑ*SIGNATURE__919__FP__ADDRESSÒ*SIGNATURE__917__FP__ADDRESSÓ*SIGNATURE__923__FP__ADDRESSÔ*SIGNATURE__920__FP__ADDRESSÕ*SIGNATURE__918__FP__ADDRESSÖ*SIGNATURE__922__FP__ADDRESS×*SIGNATURE__921__FP__ADDRESSØ*SIGNATURE__924__FP__ADDRESSÙ*SIGNATURE__916__FP__ADDRESSÚ*SIGNATURE__944__FP__ADDRESSÛ*SIGNATURE__949__FP__ADDRESSÜ*SIGNATURE__946__FP__ADDRESSÝ*SIGNATURE__945__FP__ADDRESSÞ*SIGNATURE__948__FP__ADDRESSß*SIGNATURE__947__FP__ADDRESSà*SIGNATURE__943__FP__ADDRESSá*SIGNATURE__961__FP__ADDRESSâ*SIGNATURE__958__FP__ADDRESSã*SIGNATURE__962__FP__ADDRESSä*SIGNATURE__963__FP__ADDRESSå*SIGNATURE__964__FP__ADDRESSæ*SIGNATURE__959__FP__ADDRESSç*SIGNATURE__960__FP__ADDRESSè*SIGNATURE__957__FP__ADDRESSé*SIGNATURE__965__FP__ADDRESSê*SIGNATURE__974__FP__ADDRESSë*SIGNATURE__978__FP__ADDRESSì*SIGNATURE__976__FP__ADDRESSí*SIGNATURE__975__FP__ADDRESSî*SIGNATURE__977__FP__ADDRESSï*SIGNATURE__973__FP__ADDRESSð*SIGNATURE__598__FP__ADDRESSñ*SIGNATURE__984__FP__ADDRESSò*SIGNATURE__983__FP__ADDRESSó*SIGNATURE__979__FP__ADDRESSô*SIGNATURE__986__FP__ADDRESSõ*SIGNATURE__990__FP__ADDRESSö*SIGNATURE__991__FP__ADDRESS÷*SIGNATURE__992__FP__ADDRESSø*SIGNATURE__993__FP__ADDRESSù*SIGNATURE__995__FP__ADDRESSú*SIGNATURE__996__FP__ADDRESSû*SIGNATURE__997__FP__ADDRESSü*SIGNATURE__998__FP__ADDRESSý*SIGNATURE__999__FP__ADDRESSþ*SIGNATURE__1000__FP__ADDRESSÿ*SIGNATURE__1001__FP__ADDRESS+SIGNATURE__1002__FP__ADDRESS+SIGNATURE__1003__FP__ADDRESS+SIGNATURE__1018__FP__ADDRESS+SIGNATURE__1015__FP__ADDRESS+SIGNATURE__1012__FP__ADDRESS
+SIGNATURE__1014__FP__ADDRESS+SIGNATURE__1013__FP__ADDRESS+SIGNATURE__1011__FP__ADDRESS+SIGNATURE__1004__FP__ADDRESS+SIGNATURE__1021__FP__ADDRESS+SIGNATURE__1023__FP__ADDRESS+SIGNATURE__1024__FP__ADDRESS+SIGNATURE__1025__FP__ADDRESS+SIGNATURE__1026__FP__ADDRESS+SIGNATURE__1027__FP__ADDRESS+SIGNATURE__1028__FP__ADDRESS+SIGNATURE__1030__FP__ADDRESS+SIGNATURE__1031__FP__ADDRESS+SIGNATURE__1032__FP__ADDRESS+SIGNATURE__1033__FP__ADDRESS+SIGNATURE__1034__FP__ADDRESS+SIGNATURE__1035__FP__ADDRESS+SIGNATURE__1036__FP__ADDRESS+SIGNATURE__1038__FP__ADDRESS+SIGNATURE__1039__FP__ADDRESS+SIGNATURE__1040__FP__ADDRESS+SIGNATURE__1041__FP__ADDRESS+SIGNATURE__1045__FP__ADDRESS+SIGNATURE__1042__FP__ADDRESS+SIGNATURE__1046__FP__ADDRESS+SIGNATURE__1047__FP__ADDRESS+SIGNATURE__1048__FP__ADDRESS +SIGNATURE__1049__FP__ADDRESS¡+SIGNATURE__1050__FP__ADDRESS¢+SIGNATURE__1053__FP__ADDRESS£+SIGNATURE__1057__FP__ADDRESS¤+SIGNATURE__1054__FP__ADDRESS¥+SIGNATURE__1058__FP__ADDRESS¦+SIGNATURE__1059__FP__ADDRESS§+SIGNATURE__1060__FP__ADDRESS¨+SIGNATURE__1062__FP__ADDRESS©+SIGNATURE__1063__FP__ADDRESSª+SIGNATURE__1064__FP__ADDRESS«+SIGNATURE__1065__FP__ADDRESS¬+SIGNATURE__1067__FP__ADDRESS+SIGNATURE__1068__FP__ADDRESS®+SIGNATURE__1069__FP__ADDRESS¯+SIGNATURE__1070__FP__ADDRESS°+SIGNATURE__1071__FP__ADDRESS±+SIGNATURE__1072__FP__ADDRESS²+SIGNATURE__1073__FP__ADDRESS³+SIGNATURE__1074__FP__ADDRESS´+SIGNATURE__1075__FP__ADDRESSµ+SIGNATURE__1077__FP__ADDRESS¶+SIGNATURE__1084__FP__ADDRESS·+SIGNATURE__1081__FP__ADDRESS¸+SIGNATURE__1092__FP__ADDRESS¹+SIGNATURE__1090__FP__ADDRESSº+SIGNATURE__1096__FP__ADDRESS»+SIGNATURE__1094__FP__ADDRESS¼+SIGNATURE__1095__FP__ADDRESS½+SIGNATURE__1091__FP__ADDRESS¾+SIGNATURE__1093__FP__ADDRESS¿+SIGNATURE__1097__FP__ADDRESSÀ+SIGNATURE__1098__FP__ADDRESSÁ+SIGNATURE__1099__FP__ADDRESSÂ+SIGNATURE__1100__FP__ADDRESSÃ+SIGNATURE__1101__FP__ADDRESSÄ+SIGNATURE__1104__FP__ADDRESSÅ+SIGNATURE__1105__FP__ADDRESSÆ+SIGNATURE__1106__FP__ADDRESSÇ+SIGNATURE__1109__FP__ADDRESSÈ+SIGNATURE__1110__FP__ADDRESSÉ+SIGNATURE__1111__FP__ADDRESSÊ+SIGNATURE__1112__FP__ADDRESSË+SIGNATURE__1113__FP__ADDRESSÌ+SIGNATURE__1114__FP__ADDRESSÍ+SIGNATURE__1117__FP__ADDRESSÎ+SIGNATURE__1118__FP__ADDRESSÏ+SIGNATURE__1119__FP__ADDRESSÐ+SIGNATURE__1120__FP__ADDRESSÑ+SIGNATURE__1121__FP__ADDRESSÒ+SIGNATURE__1122__FP__ADDRESSÓ+SIGNATURE__1124__FP__ADDRESSÔ+SIGNATURE__1126__FP__ADDRESSÕ+SIGNATURE__1128__FP__ADDRESSÖ+SIGNATURE__1129__FP__ADDRESS×+SIGNATURE__1130__FP__ADDRESSØ+SIGNATURE__1131__FP__ADDRESSÙ+SIGNATURE__1132__FP__ADDRESSÚ+SIGNATURE__1133__FP__ADDRESSÛ+SIGNATURE__1134__FP__ADDRESSÜ+SIGNATURE__1135__FP__ADDRESSÝ+SIGNATURE__1136__FP__ADDRESSÞ+SIGNATURE__1137__FP__ADDRESSß+SIGNATURE__1138__FP__ADDRESSà+SIGNATURE__1139__FP__ADDRESSá+SIGNATURE__1140__FP__ADDRESSâ+SIGNATURE__1141__FP__ADDRESSã+SIGNATURE__1142__FP__ADDRESSä+SIGNATURE__1143__FP__ADDRESSå+SIGNATURE__1144__FP__ADDRESSæ+SIGNATURE__1145__FP__ADDRESSç+SIGNATURE__1146__FP__ADDRESSè+SIGNATURE__1147__FP__ADDRESSé+9NoInit, NoCompareWithNew, Compiled, SuperGlobal, Internalê+F{attribute 'conditionalshow' := '3SLib_Developer'}
{attribute 'hide'}ë+
4261187534ì+ Variablesí+stLogStringî+
pLogStringï+$cd51317e-3db2-44da-bb88-6b22ca144fe3ð+ no_assignñ+
2123084293ò+
GVL_CfUnitó+CfUnitRunnerô+W Indication of whether the last instantiated test suite has an assert instance created õ+TestSuiteAssertRegisteredö+! Current test suite being called ÷+CurrentTestSuiteBeingCalledø+# Current name of test being called ù+CurrentTestNameBeingCalledú+û This is a flag that indicates that the current test should be ignored, and
thus that all assertions under it should be ignored as well. A test can be ignored either
because the user has requested so, or because the test is a duplicate name û+IgnoreCurrentTestü+b The assert function block instance should be 1:1 mapped to
the test suite instance path. ý+NumberOfInitializedTestSuitesþ+TestSuiteAddressesÿ+MaxAmountOfTestSuites, xml composer and filewriter ,jUnitXmlWriter,$78472b76-c9a4-4b27-a580-8e7898edc3d7,
parameterlist,
3861505112
,$cadec786-f15c-46d7-8a5f-f8454136b189,strict,
2220631024,
E_XmlError,Ok,ErrorMaxBufferLen,ErrorStringLen,Error,$05a4fdda-1086-47b5-ad10-7c2bac568355,
2927770536,$69588962-bd3e-4958-957e-7bfb94609af1, 356200577,
GVL_System,
_ST_Logger, _CmpCfLog,AGlobal, IsCompiled, Absolut, Initialized, OnlChangeExit, Typified,$7e465938-43b3-4ac5-bae5-c19fce2bd2bf,global_init_slot,40000,
2434124423,
GVL_hidden,gc_CLASSID_License,gc_tDemo,g_tDemoTime,g_olm,
g_udiStart,$60802aa3-0da6-43f2-b1c6-612c13d38103 ,
3998489052¡,EventIDs¢,$6c565d0a-715a-4bda-9c41-364072c0854f£,RTS_ACCESS_MODE¤,
3616192811¥,AM_READ¦,AM_WRITE§, AM_APPEND¨,AM_READ_PLUS©,"Enum, Compiled, Typified, Internalª,$f6709db2-0787-4cc0-984b-80f9dc50344c«,compatibility_id¬,$52A6FD6D-031C-41c0-A818-0F45FE19AF8F,
3969002541®,TYPE_INTERFACE¯,$18308f84-bb54-40d0-ae45-a2e8c891c222°,!base interfaces, 3.5.2.0 (system)±,¥ | Access mode
| File modes to open a file.
.. note::
For all ``*_PLUS`` modes be aware, that after reading from a file, writing can only be done after a call
to |SysFileGetPos| or |SysFileSetPos|! If you call |SysFileWrite| right after |SysFileRead|,
the file pointer could be on an invalid position!
Correct example::
SysFileRead();
SysFileGetPos();
SysFileWrite();²,K Open an existing file with Read access. If file does not exist, Open fails³,L Create new file with Write access. If file does exist, content is discarded´,Z Open an existing file with Append (only write) access. If file does not exist, Open failsµ,Q Open an existing file with Read/Write access. If file does not exist, Open fails¶,Q Create new file with Read/Write access. If file does exist, content is discarded·,g Open an existing file with Append (read/write) access. If file does not exist, Open creates a new file¸,
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Ú,
1192820603Û,GlobalConstantsÜ,Common DefinesÝ,$0c76e09e-5f6c-41d5-841a-2071be1c6304Þ,49000ß, 251212993à,HandleConstantsá,suppress_warning_0â,C0195ã,$471467d5-89a4-4482-b970-b13eff79244eä,
1265334668å,Errorsæ, Okç,ERR_OKè,5 General error - to be used only for internal errors é,
ERR_FAILEDê,% Invalid parameter for this operationë,
ERR_PARAMETERì,e Function cannot be executed, since component has not been initialized yet. It may work later, thoughí,ERR_NOTINITIALIZEDî, Version conflictï,ERR_VERSIONð, Operation timed outñ,ERR_TIMEOUTò,- Insufficient memory to carry out the requestó,ERR_NOBUFFERô,( For async-calls: call not complete, yetõ,ERR_PENDINGö,! To many pending calls. Try later÷,ERR_NUMPENDINGø, The function is not implementedù,ERR_NOTIMPLEMENTEDú,% No object with the provided id foundû,
ERR_INVALIDIDü, Integer overflowý,ERR_OVERFLOWþ,, The size of a buffer is to small or invalidÿ,ERR_BUFFERSIZE-- No object with this specified name available-
ERR_NO_OBJECT- No heap memory available-ERR_NOMEMORY-0 An object with the same name is still available
-
ERR_DUPLICATE-> 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)³. 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».2Typified, ToCompile, Compiled, ContainsNoParseTree¼.System.Byte½. Relocated¾.ToCheck¿.LTopLevel, Typified, ToCompile, NotForUpToDate, Compiled, ContainsNoParseTreeÀ.<TopLevel, Typified, ToCompile, Compiled, ContainsNoParseTreeÁ.StaticFunctionCallÂ.STopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerateÃ.PTypified, ToCompile, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCallsÄ.
InterfaceCallÅ.VirtualFunctionCallÆ.'Typified, Compiled, ContainsNoParseTreeÇ.ZTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCallsÈ.BTypified, ToCompile, Compiled, ContainsNoParseTree, ContainsNoCodeÉ.0Ê.ITypified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerateË.__DOWNLOAD__CODEÌ.__ONLINE__CHANGE__CODEÍ."__DATASEGMENTFLAGS__224__GVL__INITÎ.HTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, ToGenerateÏ.#__COMPILE_CONSTANTS__225__GVL__INITÐ.__WATCHVARS__226__GVL__INITÑ.1__ALLOCATEDIMPLICITREFERENCETYPES__227__GVL__INITÒ.#CONSTANTS__228__SYSTEM____GVL__INITÓ.TYPE_CLASS__399__GVL__INITÔ.$_IMPLICIT_KINDOFTASK__582__GVL__INITÕ./_IMPLICIT_TASK_CONFIG_VARIABLES__985__GVL__INITÖ./_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__INIT×.!__APPLICATIONNAME__138__GVL__INITØ.%__TASKSPECIFICINFOGVL__139__GVL__INITÙ.__TYPECLASS__989__GVL__INITÚ.&__CONVERSION_CONSTANTS__994__GVL__INITÛ.(__LCONVERSION_CONSTANTS__1076__GVL__INITÜ. __SETUP__CALL__POU__1__GVL__INITÝ.PRG_TEST__598__GVL__INITÞ..ToCompile, Compiled, ContainsNoParseTree, Blobß.DToCompile, Compiled, DataRelocations, ContainsNoParseTree, ConstBlobà.GLOBAL__INITá.
CODE__INITâ.OTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, IgnoreForChecksumã.RemovedFromMemoryä.__RELOCATE__OFFSET_TABLEå.;ToCompile, Compiled, ContainsNoParseTree, IgnoreForChecksumæ.$901decdd-9eb4-4a5b-951f-42fb21b27718ç.65183è.Retain, Areaé.Retain, Area, Persistentê.
Code, Areaë.Memoryì.Inputí.Outputî. Automaticï.Retainð.Automatic, DynamicSizeñ.Retain, Persistentò.Codeó.Targetô.$b1d7d47f-aa33-4b86-b93d-8e11ed0bb0cfõ.$bf5ff5a1-0000-0000-0000-000000000000ö.$be2dfced-0000-0000-0000-000000000000÷.AddrSizeø.4ù.generate_exceptioninfoú.IsTryCatchSupportedû.IsLittleEndianü.RegisterSizeý.32þ.Platformÿ.RiscFrontEnd/ ByteOrder/Intel/PackMode/IsFPUSupported/Standard
/BPLog/ SM3_Basic/SM3_CNC/:sm3_robotics, 4.5.1.0 (3s - smart software solutions gmbh)/SM3_Robotics/?sm3_robotics_visu, 4.5.1.0 (3s - smart software solutions gmbh)/SM3_Robotics_Visu/@sm3_transformation, 4.5.1.0 (3s - smart software solutions gmbh)/TRAFO/7sm3_error, 4.5.1.0 (3s - smart software solutions gmbh)/ SM3_Error/6sm3_math, 4.5.0.0 (3s - smart software solutions gmbh)/SM3_Math/IBaseLibrary/util, 3.5.14.0 (system)/Util/IECStringUtils/ CmpErrors/Component_Manager/.caa memory, 3.5.12.0 (caa technical workgroup)/MEM/sysmem, 3.5.12.0 (system)/SysMem/Ecommon behaviour model, 3.5.15.0 (3s - smart software solutions gmbh)/CBML/systimertc, 3.5.5.0 (system)/
SysTimeRtc /systimecore, 3.5.5.0 (system)¡/SysTimeCore¢/SysCpuHandling£/systime, 3.5.9.0 (system)¤/SysTime¥/Stu¦/SysTypes_Interfaces§/iostandard, 3.5.13.0 (system)¨/
IoStandard©/systarget, 3.5.5.0 (system)ª/ SysTarget«/_3S_LICENSE¬/7caa callback extern, 3.5.11.0 (caa technical workgroup)/CB®/%iodriver interfaces, 3.5.2.0 (system)¯/IoDriver_Interfaces°/$floatingpointutils, 3.5.9.0 (system)±/FPU²/8sm3_shared, 4.4.0.0 (3s - smart software solutions gmbh)³/SM0´/8caa device diagnosis, 3.5.14.0 (caa technical workgroup)µ/DED¶/Fsm3_trajectorygeneration, 4.5.0.0 (3s - smart software solutions gmbh)·/SM3_TrajectoryGeneration¸/7sm3_rbase, 4.5.1.0 (3s - smart software solutions gmbh)¹/SMRBº/7sm3_ramps, 4.4.0.0 (3s - smart software solutions gmbh)»/ SM3_Ramps¼/<memorybarrier, 3.5.12.0 (3s - smart software solutions gmbh)½/
MemoryBarrier¾/CmpCodeMeter¿/@caa ressource manager extern, 3.5.11.0 (caa technical workgroup)À/RSMÁ/%systypes interfaces, 3.5.2.0 (system)Â/sysdir, 3.5.12.0 (system)Ã/SysDirÄ/7caa behaviour model, 3.5.11.0 (caa technical workgroup)Å/CBMÆ/2caa fb factory, 3.5.13.0 (caa technical workgroup)Ç/FBFÈ/IIoDrvÉ/cmpasyncmgr, 3.5.12.0 (system)Ê/CmpAsyncMgrË/5commfb, 3.5.14.0 (3s - smart software solutions gmbh)Ì/CommFBÍ/6caa tickutil extern, 3.5.7.0 (caa technical workgroup)Î/TICKUÏ/2caa tick extern, 3.5.7.0 (caa technical workgroup)Ð/TICKSÑ/Ccaa memory block manager extern, 3.5.13.0 (caa technical workgroup)Ò/MBMÓ/syssem, 3.5.5.0 (system)Ô/SysSemÕ//iodriver profibus2 interfaces, 3.5.6.0 (system)Ö/IIoDrvProfibus×/Asm3_addrampsdefault, 4.1.0.0 (3s - smart software solutions gmbh)Ø/SoftMotion_AddRampsÙ/SM3MÚ/systime, 3.5.5.0 (system)Û/sysexcept, 3.5.7.0 (system)Ü/ SysExceptÝ/visudialogs, 3.5.12.0 (system)Þ/VisuDialogsß/standard64, 3.5.13.0 (system)à/
Standard64á/Edatasources interfaces, 3.5.15.0 (3s - smart software solutions gmbh)â/IDatasourcesã/licä/stdå/5sm3_rcp, 4.5.1.0 (3s - smart software solutions gmbh)æ/SMRCPç/TMPè/Bsm3_cpkerneldefaults, 4.5.0.0 (3s - smart software solutions gmbh)é/SM3_CPKernelDefaultsê/System.Guidë/System.Collections.Hashtableì/System.Collections.ArrayListí/ 0000 0010î/3.5.14.0ï/$6708bd14-cddc-4e28-b69d-d3183b7c423eð/
VariableIdñ/SignatureIdò/ScopeIdó/PositionToSaveô/MessagesToSaveõ/&{bc2be951-49f6-4f0f-b731-e31e36606f1e}ö/$c529d0d0-8cec-4d28-bb44-5e2d4ebecdcf÷/Flagsø/&{79aa0cce-71e9-4699-9f63-03cf09dcc367}ù/$fd373d9e-533d-4d69-ad04-82ccf513ff10ú/$1cf06df3-a230-4b74-89c8-47fcfa9aa3a2û/Idü/CrossReferencesNewý/System.Collections.SortedListþ/Locationÿ/
Attributes0
Expression0DirectVariable0Inputs0Flag0&{1bfe400e-6f3f-4faa-a8db-db81cd2849ba}
0$8499b87a-2b75-4c62-8657-e4aa9316c18b0TypeDef0$e833a88e-e01b-4cc9-b0cb-fe17b4370a010BaseType0$48397926-5c6f-41f7-b878-4ffb8fbbd3f00Area0$1bef2131-34c3-45be-922f-9a02d282ff7b0Current0$2dacf8ba-27b3-43f2-b9f0-d578dd179b1d0
TaskIndexList0VFTable0QNEBaseSignature0QNEInterfacesArray0InterfaceIds0
CalleeSize0NameExp0Operator0&{bffb3c53-f105-4e85-aba2-e30df579d75f}0
VariableArray0&{1cf06df3-a230-4b74-89c8-47fcfa9aa3a2}0
SubSignatures0&{9b5d4c11-b2d9-46c2-bf90-350eefa47fc5}0
Flags_long0ParentSignatureId0
ObjectGuid0MessageGuid0ParentObjectGuid 0LibraryPath¡0DPOffset¢0DataLocation£0 IdManager¤0 TimeStamp¥0Checksum¦0ChecksumNoInit§0 Declarers¨0
Referencer©0CallersArrayª0System.Int32«0
CalleesArray2¬0HighestUsedOffset0$af63b19d-1ce0-4d63-a098-6d4c02ca35da®0$b5bdc032-52f5-48d3-9c8c-8c79ab5a416d¯0Base°0 LongValue±0&{16f7aa24-038f-444e-9d81-b001bc091d35}²0Negative³0OriginalTypeClass´0$5677bd2d-c2f2-4498-a6d6-5e2aecdbd55dµ0DefaultValue¶0$88513019-926a-4125-ab4f-260cf5e4c63e·0$90261d82-8abd-4de3-8803-2b5bc8289940¸0$b3888e82-99e8-407c-b55f-e8cc12c8efaa¹0Relocationsº0$f5a15500-d891-4119-b195-3d52d84c8577»0RelocationAreaList¼0$3504087f-d7cb-485e-a95e-35e81d5fc2b0½0
CodeBytesX¾0flags¿0&{0148e1b6-6651-4ac0-91ad-da620acad399}À0RelocationListÁ0$b19c1570-9d63-448c-b1a8-77c564f4bf41Â0 ParseTreeÃ0ParseTreeEmptyÄ0CompiledPOUFlagsÅ0&{ffb74c62-0dab-4b81-a769-562edfcba448}Æ0CompiledCodeÇ0ScratchSizeÈ0MaxParamSizeÉ0BreakpointlistÊ0messagesË0CodeGeneratorStackSizeÌ0BitWriteAccessesÍ0
trycatchfpadrÎ0trycatchcodeadrÏ0InternalCompiledPOUFlagsÐ0&{d84e773e-c159-42c6-8f67-07b0df2b44ab}Ñ0 pmessagesÒ0$9acb4711-ae23-42e3-a6bc-58b75ab4215eÓ0ExceptionHandlingSuccessorÔ0LenÕ0
CodeOffsetÖ0
Successors×0StepInsØ0AssSuccÙ0AreaGPRegisterÚ0OffsetGPRegisterÛ0$762f79d8-237e-4aec-8576-b032ad1bb941Ü0SignIdÝ0&{fcb43bca-9283-4080-8c7a-085c4f21024c}Þ0 StepOutBpß0StepInBpà0&{762f79d8-237e-4aec-8576-b032ad1bb941}á0$9e894478-12b9-4f7b-ae88-4807ccb19a10â0Listã0Firstä0$467ac7f9-d9fc-4e1d-9fb4-9e5dde0a44c2å0ReplaceConstantsæ0Unicodeç0LoggingInBreakpointsè0$1cdc5830-00b6-4d16-ac84-61a1c00364e9é0$17b1421c-2984-4921-865a-ab1609aa9f92ê0
MemManGapsë0BaseAddressì0$e0d57300-b431-4917-bfe4-fc6030a266eeí0Addressî0
DPTableOffsetï0&{68cddacd-2830-4780-ae45-869af5892c4f}ð0Memmanñ0SegmentSizeò0HTMemMansToFlagsó0 LogByFlagô0$e22c2694-f644-4661-a028-99897a56f19aõ0StartAddressö0DataSegmentFlags÷0 AreaFlagsø0&{be5c129c-a197-417b-85f0-00907e2c063f}ù0MinimalSizeú0AllocationPlusû0 Availableü0MaximalSizeý0$a20044ae-acaa-44c9-83f9-750bbfb34c6aþ0DataSegmentsÿ0Areas1 FirstArea1$a2ede959-e5fe-4f81-9037-a646588f90671
GuidObject1GuidTask1TaskName
1ParentTaskName1$b60bf7c1-48fb-428f-888b-da4337fb7f3c1
TaskListArray1&{a2ede959-e5fe-4f81-9037-a646588f9067}1$df911092-020b-4e0a-bf63-b9df8a0ee0a71libid1name1referencinglib1 outofpool1id1QO1$d22ac189-3d1c-422d-b11c-0ca8bf22a5791libinfosave1&{df911092-020b-4e0a-bf63-b9df8a0ee0a7}1$e6a670d4-8bad-4716-a29b-770da7f0eef71TaskList1TaskGuidsOfObject1
DownloadSlots1OnlineChangeSlots1$99fa1ec1-fc21-4c93-9f1e-0accb45e8a841table_11$3966d598-3646-49d7-a64c-1b0623a3daed1$d774556f-de05-4539-a455-16fd4345bbf51type1version1$32583999-e3b5-4fb3-8394-6c5409f3c8a71SignaturesArray 1&{2dacf8ba-27b3-43f2-b9f0-d578dd179b1d}¡1GlobalSignaturesArray¢1CompiledPOUsArray£1&{b19c1570-9d63-448c-b1a8-77c564f4bf41}¤1CompileOptionsToSave¥1CodegeneratorClass¦1ImplicitReferenceVariableList§1ProjectChecksum¨1staticmemorysegments©1Memchecksumª1DataManager«1
KindOfContext¬1&{1d8fe3d0-8423-48cf-8a9b-eaa134990850}1SignatureIDMan®1LibraryIDMan¯1ReadyForDownload°1ReadyForCompile±1SystemApplication²1
DynamicMemory³1GenerateContent´1DeviceApplicationµ1ApplicationGuid¶1TimeStampContext·1
TimeStampPool¸1ContainsOnlineChangeCode¹1
GuidCodeIdº1
GuidDataId»1GuidCodeIdLast¼1GuidDataIdLast½1CRCCode¾1CRCData¿1CRCCodeLastÀ1CRCDataLastÁ1DefinesÂ1PrecompileDefinesÃ1bFastOnlineChangeÄ1libtableÅ1LPTChecksumÆ1LibChecksumÇ1PoolLibChecksumÈ1SlotPOUListÉ1DirVarTableÊ1WithoutTargetsettingsË1 auxiliaryÌ1simulationmodeÍ1
bcontainscodeÎ1deviceidÏ1$34951a1b-8cb0-4c0a-8fa0-271c0a67fbd7Ð1$4c33f62d-2ba9-4951-b27c-3cedc666c650Ñ1$d383106b-f62a-4320-9b73-1ad1cdb4256bÒ1$223d196a-c1d7-4283-aea6-270599207584Ó1$2de3951e-05c3-42d9-a8c2-0f9e6cd2c60eÔ1$2c47afd5-45a7-4318-a91c-e6ccae571e57Õ1$3b41731c-8281-447e-8300-967d85065431Ö1$ab09737e-b891-4fc6-9c8c-246eb8cdb046×1SizeExpressionØ1$bad068f5-d75d-4104-a3db-b92ab7fd8e73Ù1$4843ac80-bf56-4163-a5d4-aef6b1846075Ú1$d4b6feaa-e9d6-4356-aaf6-400ae9d83e05Û1LowerÜ1UpperÝ1$1cdc270d-d608-42d9-b269-87457e40fd7dÞ1&{73ce5f25-d76d-4bc9-a6d5-0f1336fc56e3}ß1$1a5bd4e4-ab1d-4514-adeb-22e2eeddcce6à1$306eb234-9ade-475b-8492-004f59e739d9á1$ef19db71-9ad6-4d2a-9535-1a0f103c369dâ1$8db06532-d746-4cb4-83d6-15216b159eedã1$ac2d6c97-8b55-498b-83df-2059efb47336ä1$d3df9a8e-760e-4747-9783-699d53cec752å1$119284d1-95b7-462d-b06e-48ad65601f7bæ1$8805e1b7-ec8d-4bf0-9194-dcb2b29ff03fç1$00014fd3-8bc4-4e77-981b-095b9c869fc2è1$0ba7ff45-cf9b-419a-84c8-ae1727e3961fé1compiledtypeê1Leftë1Rightì1$c8e3c9b1-32ff-4f6a-ac31-84a9afd1157fí1Operandsî1
ScratchOffsetï1$5b2d1cb9-99ea-435b-a739-5533bb136a6að1cppñ1offsetò1ipoffsetó1$8ec925c2-9c5b-4d91-b581-8ec7c2f47ca9ô1$2725bf0b-b380-4604-92d5-60505864ba35õ1
dicInterfacesö1
dicOffsets÷1pointersizeø1&{182b8553-40b6-4da1-b365-72d137f05911}ù1$4b4ec020-a837-40a5-a308-89707ef17af6ú1OrgTypeû1$71c4e10e-3e38-473f-b4b9-db1c89cbe452ü1$80dc2303-8251-4747-b7f7-a402ed859801ý1$6c1d7ed1-429a-4b0d-84d7-fc2a63a0c431þ1$cf26b7be-0f44-4dda-af18-2657035f6b45ÿ1$944d7731-22cd-4544-8e6a-e23be2ec40102$187803f1-6b2c-486c-bcf0-b6f913f59ce32StringValue2$1b39b304-ff51-4801-9f54-9501addefd532$1315f3d2-84a9-4bcd-a718-efa3d05015342InitListNew
2DefInitDone2$fbc31a5d-5b51-405e-b986-43250b86c9f72
FloatValue2$60e07f4f-23d9-424e-a27b-bf5e093fd92a2Number2$9a2297c9-1fa0-4ec6-a2b2-e2de8fdc6a632BitNr2$458880e1-4ccc-4f34-af1a-7cd7fe7c81932LValue2RValue2$30cfa52e-e32a-43c4-a033-2a152796aeaf2$861aad71-b796-49c8-8e44-0d476c5ed1ab2$aef7a177-3956-4c97-8460-6228ab3f34012$62f14e25-8c68-4d8c-98ca-3067a13656f72$79a8baad-3f7f-40d2-8250-3037bf5e66312Variable2Accesses2$528c9030-405d-451c-b45a-9aa6b05207832From2To2$2f0e740d-b75f-401a-a7f2-ecd76eb6ee2d2 CocoFlags2 reloclist2
related_id2$40c3211d-4a89-419c-88a4-b26d33c2707e2arealist2$35e108dd-922c-4765-9f66-6c7ed83f4af7 2MotorolaByteOrder½ï/´ å
ð/ñ/ò/ó/
ô/õ/¯ö/
÷/ø/ù/ñú/ó/
û/ü/
ý/þ/ÿ/ 0 0 0 ¯´00
00ñ/ò/ñï/´å
ð/ñ/ò/ó/
ô/õ/¯00ñ00
00
0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬00 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬00ñ
®0´ó/
ô/õ/¯0°0
í±0²0³0±0´0ñ/¯0µ0 ñú/ó/
û/ü/
ý/þ/ÿ/B00 0 ¯´00ú/ó/
û/ü/
ý/þ/ÿ/ 00 0 ¯´000 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0 ©0 «0 ¬0¶0´ó/
ô/õ/°0
í±0²0³0±00 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0·0
¸00¹0@º0»0@¼0½0@¾0¿0¢0À0Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0 È0É0 Ê0õ/Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 Ò0 ó/
Ó0Ô0Õ0Ö0 ×0 Ø0ª0Ù0Ú0Û0Ü0÷/Ý0Þ0ß0Ò0 ó/
Ó0Ô0Õ0Ö0ª0×0à0Ø0ª0Ù0Ú0á0â0Aã0Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0È0É0Ê0õ/Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 ä0å0¦ª0æ0ç0è0
¥ é0ê0@¥ë0!ì0 0
í0î0¥÷/ï0ð0ñ0ò0 ó0"ô0
õ0¥°
ö0ï0÷0ø0ù0ú0¥0 û0ü0#ý0þ0@ÿ0@1$11ê/1ê/1
1 %111&1111111'111(11
ë/1
ë/1
ë/1
ë/)11B*1â0ì/+1111,1.1 1¡1 1¢1£1¤1¥1ê/¦1@§1 ¨1@©1 ª1«1¬111®1¯1°1±1²1³1´1µ1ê/¶1
·1
¸1¹1ê/º1ê/»1ê/¼1ê/½1 ¾1 ¿1 À1 Á1ë/Â1
ë/Ã1Ä1Å1 Æ1 Ç1 È1É1Ê1Ë1Ì1Í1Î1-Ï1ñ.Ð1ñ/0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬00Ñ1ñ10 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬02Ò1ñ30 0¼.0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬04Ó1ñ5Ô1ñ6Õ1ñ7Ö1×1ñ8Ø1ñ9ú/ó/
û/ü/
ý/þ/ÿ/B0 0 0 ¯´00:Ù1ñ;Ú1Û1Ü1<Ý1ý @0ñ=0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0>0 0 0 ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0B©0 «0 ¬0?ß1ñ@à1ñAá1ñB0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬0Câ1ñDã1ñE0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬0Fä1ñGå1ñHæ1ñI0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0J0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0Kç1×1 ñL0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0M0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬0N0 0 0 ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0O0 0 0 ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0P0 0 0 ñ/00 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0B©0 «0 ¬0Q0 0 0 ñ/00 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0@¬0R0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0S0 0¼.0 ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0T0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬0Uè1´ó/
ô/õ/é1ê1ë1Vì1´ó/
ô/õ/é1í1@î100WÖ1×1 ñXï1û/¯ð1ñ1ò1Yó1¯û/Zô1â0Aþ/ õ1
ë/ö1
ë/÷1[0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬0\0 0 0ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0]ô1â0Aþ/õ1
ë/ö1
ë/÷1^¶0´ ó/
ô/õ/°0
í±0²0³0±0_0 0 0ñ/0 0ø10ª0ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0`0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0a0 0 0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0bô1â0@þ/õ1
ë/ö1
ë/÷1c0 0 0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0d0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬0e0 0¼.0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0fè1´ ó/
ô/õ/é1 ê1ë1gù1ú1µ0 0ñ/ò/ñh0 0¼.0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0ª0«0 ¬0i0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0j0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬0k0 0¼.0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0lû1ñmü1ñný1ñoþ1ñp0 0¼.0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0q0 0¼.0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0@¬0rÿ1´ó/
ô/õ/¯0s0 0¼.0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0t0 0¼.0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬0u0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0v0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬0w0 0¼.0ñ/0 0ø10ª0ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0x0 0¼.0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0yú/ó/
û/ü/
ý/þ/ÿ/C0 0 0 ¯´00z0 0¼.0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0ª0«0@¬0{ú/ó/
û/ü/
ý/þ/ ÿ/ 0 0 0 ¯´00|0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0 ©0 «0 ¬0}0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0~0 0 0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0B©0 «0 ¬00 0¼.0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0ª0«0 ¬02´ó/
ô/õ/í±02³0±00 0¼.0ñ/0 0 0 ÿ/C¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0ª0«0 ¬00 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬00 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬00 0 0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬0
0 0 0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0@¬02ñ2´ó/
ô/õ/é12@
20 0 0ñ/0 0 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0@¬00 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬00 0 0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬00 0¼.0ñ/00 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬02´ó/
ô/õ/í±02³0±00 0¼.0ñ/00 0 ÿ/B¥0000000Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬02´ó/
ô/õ/é1Ù22´ó/
ô/õ/é12A
222
÷/ø/ç1×1ñ2´ó/
ô/õ/22002´ó/
ô/õ/é12@
20 0¼.0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0@¬020ñ0 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬02´ó/
ô/õ/é100 0¼.0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬00 0 0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0B©0 «0@¬0ú/ó/
û/ü/
ý/þ/ ÿ/B0 0 0 ¯´000 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0ª0«0 ¬020ñ0 0 0 ñ/0 0 0 ÿ/B¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0B©0 «0 ¬00 0 0 ñ/0 0 0 ÿ/ ¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬00 0 0 ñ/0 0 0 ÿ/ ¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0 0 0 0 ñ/0 0 0 ÿ/ ¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0¡0 0 0 ñ/0 0 0 ÿ/ ¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0¢0 0 0 ñ/0 0 0 ÿ/ ¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0£0 0 0 ñ/0 0 0 ÿ/ ¥0000000
Þ1÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0 ©0 «0 ¬0¤0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0£0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0¥0 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0
ë/¨0 ©0 «0 ¬0¦0 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0§2´ó/
ô/õ/é122@¨0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0©0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0ª0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0«0 0 0 ñ/0 0 0 ÿ/C¥0000000 ÷/00
û/00ê/0ê/0ê/ 0 ¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0¬0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬00 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0®0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0 ¬0¯2´ó/
ô/õ/2±02±00°0 0 0 ñ/0 0 0 ÿ/B¥0000000 ÷/00
û/00ê/0ê/0ê/ 0¡0¢0 £0¤0
¥0 ¦0 §0 ¨0 ©0 «0@¬0±ì1´ó/
ô/õ/é1í1Aî100²Ò0 ó/
Ó0Ô0Õ0Ö0ª0×0 Ø0ª0Ù0Ú0³á0â0@ã0´Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0 Ç0¤0
¥0 0È0É0 Ê0õ/Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 µÁ0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0È0É0 Ê0õ/Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 ¶Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0 È0É0Ê0õ/Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 ·Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0 È0É0Ê0 Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 ¸Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0È0É0Ê0 Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 ¹Á0¯ò. Â0 Ã00ê/0ê/0ê/ñ/Ä0Å0Æ0Ç0¤0
¥0 0 È0É0 Ê0 Ë0Ì0 Í0 Î0 Ï0Ð0Ñ0 º2½0@2¿0¢02 2»22@¼2½0@2¿0¢022½2½0@ 22¿0¢0,Ï
ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ T T v ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ A ÿÿÿÿ ÿÿÿÿA ÿÿÿÿ A ÿÿÿÿ
£ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 1 ÿÿÿÿ ÿÿÿÿ1 ÿÿÿÿ À 1 ÿÿÿÿ
T ÿÿÿÿ ÿÿÿ <Î 1ý·A×öO+öO+ A A A V 1 V V A ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ
T ÿÿÿÿ ÿÿÿ <Π븮VÜñÖðOfîðOfî h Ó Ó Ù Ù / ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ - I .
W -
V ÿÿÿÿ ÿÿÿ <Î -ÁÜD¬×Î
~ÍNÉÐ / ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ . H -
W -
V ÿÿÿÿ ÿÿÿ <Î -ÁÜD¬×dÂÌ;½{&