false true true 660 calcStringExamples false false Display true 480 true 5 35 92 true Grouping Container true true Default 230 0 false 25 1 Grouping Container false false 45 5 true 1 false 10 Label true false Label true CONCATENATE STRINGS 220 0 1 0 15 true 10 true 1 false 14 Label true false Label true AA+BB 230 0 1 0 0 true 0 true Grouping Container true true Default 230 0 false 25 1 Grouping Container false false 170 245 true 1 false 14 Label true false Label true AMODBUS(AA) 230 0 1 0 0 true 0 true 1 false 10 Label true false Label true APPEND MODBUS/ASCII LRC 220 0 1 0 15 true 10 true Grouping Container true true Default 230 0 false 25 1 Grouping Container false false 510 245 true 1 false 14 Label true false Label true 'yyy:'+AA-'xxx:' 230 0 1 0 0 true 0 true 1 false 10 Label true false Label true xxx:* -> yyy:* 220 0 1 0 15 true 10 true Grouping Container true true Default 460 0 false 44 1 Grouping Container false false 605 0 true 1 false 14 Label true false Label true NOTE: You can use either single or double quotes for string 460 0 1 0 0 true 0 true 1 false 14 Label true false Label true literals. Using one allows you to include the other in the 460 0 1 0 15 true 0 true 1 false 14 Label true false Label true string. 460 0 1 0 30 true 0 true Grouping Container true true Default 230 0 false 25 1 Grouping Container false false 270 5 true 1 false 14 Label true false Label true SSCANF(AA,'%lf') 230 0 1 0 0 true 0 true 1 false 10 Label true false Label true ONLY ONE ARGUMENT. RESULT TYPE 220 0 1 0 15 true 10 true Grouping Container true true Default 230 0 false 25 1 Grouping Container false false 540 5 true 1 false 14 Label true false Label true READ(AA,'%ld') or $R(...) 230 0 1 0 0 true 0 true 1 false 10 Label true false Label true LIKE SSCANF, BUT READ BINARY DATA 220 0 1 0 15 true 10 true 1 false 14 Label true false Label true AA-BB 230 0 1 0 75 true 5 true 1 false 14 Label true false Label true AA-|BB 230 0 1 0 90 true 5 true 1 false 14 Label true false Label true AA|-BB 230 0 1 0 130 true 5 true 1 false 14 Label true false Label true AA>BB (<, >=, etc.) 230 0 1 0 170 true 5 true 1 false 14 Label true false Label true PRINTF('abc%f', A) 230 0 1 0 200 true 5 true 1 false 14 Label true false Label true $P('abc%f',A) 230 0 1 0 240 true 5 true 1 false 14 Label true false Label true $S(AA,'%lf') 230 0 1 0 310 true 5 true 1 false 14 Label true false Label true TR_ESC('a\002b') 230 0 1 0 340 true 5 true 1 false 14 Label true false Label true $T('a\002b') 230 0 1 0 380 true 5 true 1 false 14 Label true false Label true ESC(aa) 230 0 1 0 410 true 5 true 1 false 14 Label true false Label true $E(aa) 230 0 1 0 450 true 5 true 1 false 14 Label true false Label true MAX(AA,BB) 230 0 1 0 480 true 5 true 1 false 14 Label true false Label true AA-'.VAL'+'.EGU' 230 0 1 0 510 true 5 true 1 false 10 Label true false Label true subtract first BB from AA 220 0 1 0 105 true 15 true 1 false 10 Label true false Label true E.G., 'A:B.VAL' - '.VAL' = 'A:B' 220 0 1 0 115 true 15 true 1 false 10 Label true false Label true subtract last BB from AA 220 0 1 0 145 true 15 true 1 false 10 Label true false Label true E.G., 'ABA' |- 'A' = 'AB' 220 0 1 0 155 true 15 true 1 false 10 Label true false Label true LEXICAL COMPARE, LOGICAL RESULT 220 0 1 0 185 true 15 true 1 false 10 Label true false Label true ONLY ONE ARGUMENT. RESULT IS 220 0 1 0 215 true 15 true 1 false 10 Label true false Label true STRING 220 0 1 0 225 true 15 true 1 false 10 Label true false Label true $P MEANS PRINTF 220 0 1 0 255 true 15 true 1 false 10 Label true false Label true DEPENDS ON FORMAT STRING 220 0 1 0 295 true 15 true 1 false 10 Label true false Label true $S MEANS SSCANF 220 0 1 0 325 true 15 true 1 false 10 Label true false Label true TRANSLATES ESCAPE SEQUENCES 220 0 1 0 355 true 15 true 1 false 10 Label true false Label true NOTE: TR_ESC('a\000b') -> 'a' 220 0 1 0 365 true 15 true 1 false 10 Label true false Label true $T MEANS TR_ESC 220 0 1 0 395 true 15 true 1 false 10 Label true false Label true OPPOSITE OF TR_ESC 220 0 1 0 425 true 15 true 1 false 10 Label true false Label true NOTE: NULLS AREN'T HANDLED WELL 220 0 1 0 435 true 15 true 1 false 10 Label true false Label true $E MEANS ESC 220 0 1 0 465 true 15 true 1 false 10 Label true false Label true LEXICAL COMPARE, STRING RESULT 220 0 1 0 495 true 15 true 1 false 10 Label true false Label true *.VAL -> *.EGU 220 0 1 0 525 true 15 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcExamples.opi true true $(pv_name) $(pv_value) 0 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcAlgebraicExamples.opi true true $(pv_name) $(pv_value) 60 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcTrigExamples.opi true true $(pv_name) $(pv_value) 120 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcRelationalExamples.opi true true $(pv_name) $(pv_value) 180 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcBitwiseExamples.opi true true $(pv_name) $(pv_value) 240 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcMiscExamples.opi true true $(pv_name) $(pv_value) 300 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcStringExamples.opi true true $(pv_name) $(pv_value) 360 false true 20 true 0.0 0.0 0 1 true false Polyline false Polyline true false Default 0 483 0 1 3 true 41 $(pv_name) $(pv_value) 3 true 1 false 20 Label true false Label true String expressions 470 0 1 1 20 true 10 false true 20 true 0.0 0.0 0 1 true false Polyline false Polyline true false Default 0 483 0 1 3 true 16 $(pv_name) $(pv_value) 3 false true false 16 false Menu Button false Menu Button true false Default 60 6 1 0 calcArrayExamples.opi true true $(pv_name) $(pv_value) 420 true 1 false 10 Label true false Label true CONVERT FIRST CHAR TO DOUBLE 220 0 1 0 60 true 255 true 1 false 14 Label true false Label true BYTE(AA) 230 0 1 0 45 true 245 true 1 false 10 Label true false Label true CALC MODBUS/RTU 16-BIT CRC 220 0 1 0 90 true 255 true 1 false 14 Label true false Label true CRC16(AA) 230 0 1 0 75 true 245 true 1 false 10 Label true false Label true APPEND MODBUS/RTU CRC 220 0 1 0 120 true 255 true 1 false 14 Label true false Label true MODBUS(AA) 230 0 1 0 105 true 245 true 1 false 10 Label true false Label true CALC MODBUS/ASCII 8-BIT LRC 220 0 1 0 150 true 255 true 1 false 14 Label true false Label true LRC(AA) 230 0 1 0 135 true 245 true 1 false 14 Label true false Label true XOR8(AA) 230 0 1 0 200 true 245 true 1 false 10 Label true false Label true CALC CHECKSUM BY XOR'ING EACH BYTE 220 0 1 0 215 true 255 true 1 false 14 Label true false Label true ADD_XOR8(AA) 230 0 1 0 230 true 245 true 1 false 10 Label true false Label true APPEND XOR8 CHECKSUM 220 0 1 0 245 true 255 true 1 false 14 Label true false Label true AA[1,3] 230 0 1 0 265 true 245 true 1 false 14 Label true false Label true AA['ab','yz'] 230 0 1 0 305 true 245 true 1 false 14 Label true false Label true AA[1,4][2,3] 230 0 1 0 345 true 245 true 1 false 14 Label true false Label true AA{'old','new'} 230 0 1 0 375 true 245 true 1 false 10 Label true false Label true EXTRACT SUBSTRING 220 0 1 0 280 true 255 true 1 false 10 Label true false Label true 'ABC'[1,3] = 'BC' 220 0 1 0 290 true 255 true 1 false 10 Label true false Label true EXTRACT SUBSTRING 220 0 1 0 320 true 255 true 1 false 10 Label true false Label true 'ABC'['A','C'] = 'B' 220 0 1 0 330 true 255 true 1 false 10 Label true false Label true 'ABCDEF'[3,5][1,1] = 'E' 220 0 1 0 360 true 255 true 1 false 10 Label true false Label true REPLACE 'OLD' WITH 'NEW' (ONCE) 220 0 1 0 390 true 255 true 1 false 14 Label true false Label true INT(AA) 230 0 1 0 450 true 245 true 1 false 14 Label true false Label true STR(A) 230 0 1 0 480 true 245 true 1 false 10 Label true false Label true FIND FIRST NUMBER IN STRING, 220 0 1 0 425 true 255 true 1 false 10 Label true false Label true CONVERT TO DOUBLE 220 0 1 0 435 true 255 true 1 false 10 Label true false Label true FIND FIRST NUMBER; CVT TO INT 220 0 1 0 465 true 255 true 1 false 10 Label true false Label true CONVERT TO STRING 220 0 1 0 495 true 255 true 1 false 14 Label true false Label true DBL(AA) 230 0 1 0 410 true 245 true 1 false 14 Label true false Label true WRITE('%ld',A) or $W(...) 230 0 1 0 540 true 245 true 1 false 10 Label true false Label true LIKE PRINTF, BUT WRITE BINARY DATA 220 0 1 0 555 true 255 true 1 false 14 Label true false Label true LEN(AA) 230 0 1 0 570 true 5 true 1 false 10 Label true false Label true LENGTH OF STRING 220 0 1 0 585 true 15