Changes for page 01 Lua Functions
Last modified by Theodore Xu on 2023/10/26 10:51
Summary
-
Page properties (4 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -01 Lua script function1 +01 Lua Functions - Parent
-
... ... @@ -1,1 +1,1 @@ 1 -V-BOX.V-Net.1\.User Manual.04 Lua script.WebHome1 +V-BOX.V-Net.1\.User Manual.04 Lua Script.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. admin1 +XWiki.Stone - Content
-
... ... @@ -1,70 +1,66 @@ 1 -= **1 Interface Description** =1 += **1 Interface description** = 2 2 3 -== ** 1.1Data type definition** ==3 +== **Data type definition** == 4 4 5 -(% class="table-bordered" style="width:749.989px" %) 6 -|(% style="width:375px" %)**Type**|(% style="width:372px" %)**Description** 7 -|(% style="width:375px" %)nil|(% style="width:372px" %)Null 8 -|(% style="width:375px" %)boolean|(% style="width:372px" %)Boolean, the value is true or false 9 -|(% style="width:375px" %)number|(% style="width:372px" %)Integer or floating point, signed or unsigned 10 -|(% style="width:375px" %)string|(% style="width:372px" %)String 11 -|(% style="width:375px" %)table|(% style="width:372px" %)Table 12 -|(% style="width:375px" %)function|(% style="width:372px" %)Functions 5 +|=**Type**|=**Description** 6 +|=nil|Null 7 +|=boolean|Boolean (the value is true or false) 8 +|=number|Integer or floating point (signed or unsigned) 9 +|=string|String 10 +|=table|Table 11 +|=function|Functions 13 13 14 -== ** 1.2Built-in function library clipping** ==13 +== **Built-in function library clipping** == 15 15 16 16 Full features supported: coroutine/debug/ math/ package/ string/ table/ utf8 17 17 18 -// ,,Some features supported (available in []):** **os[clock/ date/ difftime/ time],,//17 +//Some features supported (available in []):** **os[clock/ date/ difftime/ time]// 19 19 20 -// ,,Not supported: io/ file,,//19 +//Not supported: io/ file// 21 21 22 -== ** 1.3Return value description** ==21 +== **Return value description** == 23 23 24 24 The function return type multi means multiple return values (at least 2), usually: 25 25 26 -// ,,1st: nil;,,//25 +//1st: nil// 27 27 28 -// ,,2nd: the error message;,,//27 +//2nd: the error message// 29 29 30 30 ((( 31 -== ** 1.4Function parameter description** ==30 +== **Function parameter description** == 32 32 ))) 33 33 34 - **Assumethefunction prototype:**33 +Suppose a function prototype is defined: 35 35 36 - |(((37 - //student(string name, number age[, number class])//35 +{{code language="LUA"}} 36 +student(string name, number age[, number class]) 38 38 39 - **Function:**38 +Function: 40 40 41 41 Register a student 42 42 43 - **Parameters:**42 +Parameters: 44 44 45 - //name//: student name44 +name: student name 46 46 47 - //age//: student age46 +age: student age 48 48 49 - //[class=1]//: Student class48 +[class=1]: Student class 50 50 51 - **Return:**50 +Return: 52 52 53 53 Succeed: true 54 54 55 55 Failed: multi 56 - )))55 +{{/code}} 57 57 58 -** Comment**57 +**Explanation** 59 59 60 -1.string name indicates that the first parameter name is a string 59 +1. string name indicates that the first parameter name is a string 60 +1. number age indicates that the second parameter age is numeric 61 +1. [, number class] indicates that the third parameter class is a numeric value, and it is optional. Specify the default class in class 1 in the parameter description. 62 +1. **Any parameter in the [] is considered to be an optional parameter, and may not be transmitted when called. The default value will be given in the parameter description.** 61 61 62 -2.number age indicates that the second parameter age is numeric 63 - 64 -3. [, number class] indicates that the third parameter class is a numeric value, and it is optional. Specify the default class in class 1 in the parameter description. 65 - 66 -{{id name="OLE_LINK4"/}}{{id name="OLE_LINK5"/}}4. Any parameter in the brackets of [] is considered to be an optional parameter, and may not be transmitted when called. The default value will be given in the parameter description. 67 - 68 68 **Call example** 69 69 70 70 |((( ... ... @@ -93,75 +93,66 @@ 93 93 94 94 **Comment** 95 95 96 -1.From the print result, the second line of the first line is successfully called and returns true; the third line fails the call, the error message is translated as: the bar student has been registered, and there is indeed an error in the code. 92 +1. From the print result, the first line and the second line are successfully called and returns true; the third line fails the call, the error message is translated as: the bar student has been registered, and there is indeed an error in the code. 93 +1. The fourth line of code uses two variables to receive the return value. The call failed, the first variable stat is nil, and the second variable err stores the error message. Then print it out using print, which is the output of the third line. This example shows how to capture and view the error message. 97 97 98 - 2.Thefourth line ofcode uses two variables to receive the return value. The call failed,the first variable stat is nil, and the secondvariable err storesthe error message. Thenprintit out using print, which isthe output of the third line. This example shows how to capture andview the error message.95 +== **Modification of print function** == 99 99 100 - ==**1.5Modification of thePrintFunction**==97 +For the convenience of remote development, the print data is sent to the front end (web page) by means of network transmission, and the user can see the result of the debug output, because it consumes certain data and occupies the bandwidth of the server (or occupies server resources). So the following restrictions are made. 101 101 102 -For the convenience of remote development, the print data is sent to the front end (web page) by means of network transmission, and the user can see the result of the debug output, because it consumes certain data and occupies the bandwidth of the server (or occupies server resources). So make the following restrictions: 99 +1. **Interval limit: **When debugging, transfer once every 2~~3 seconds; 100 +1. **Data limit: **The transfer data cannot be larger than 1.5KB in a single transmission, otherwise the extra part will be ignored; 101 +1. **Transmission limit: **The data transmission will be stopped automatically after the debugging windows is not closed normally. Only when it is in the debugging window and the switch is on, there is data transmission; 103 103 104 -**1.Interval limit: **When debugging, transfer once every 2~~3 seconds; 105 - 106 -**2.Data limit: **The transfer data cannot be larger than 1.5KB, and the extra part will be ignored; 107 - 108 -**3.Transmission limit: **The data transmission will be stopped automatically after the debugging windows is not closed normally. Only when it is in the debugging window and the switch is on, there is data transmission; 109 - 110 110 Users should pay attention to avoid printing a lot of useless information, should minimize the debug output 111 111 112 112 In addition, please refer to the front-end documentation for how to use view debugging. 113 113 114 114 ((( 115 -= **2 Address Operation** = 116 - 117 -**~ Form 2.1** 108 += **2 Address operation** = 118 118 ))) 119 119 120 -(% class="table-bordered" style="width:982px" %) 121 -|(% style="width:167px" %) 16-bit data formal|(% style="width:142px" %) HLword|(% style="width:194px" %) 32-bit data formal|(% style="width:177px" %) HLword|(% style="width:147px" %) 64-bit data formal|(% style="width:152px" %) HLword 122 -|(% style="width:167px" %) 12(Default)|(% style="width:142px" %) 0|(% style="width:194px" %) 1234(Default)|(% style="width:177px" %) 0|(% style="width:147px" %)((( 123 - 12345678(Default) 124 -)))|(% style="width:152px" %)((( 125 - 0 111 +|=16-bit data formal|=HLword|=32-bit data formal|=HLword|= 64-bit data formal|=HLword 112 +|12(Default)|0|1234(Default)|0|((( 113 +12345678(Default) 114 +)))|((( 115 +0 126 126 ))) 127 -| (% style="width:167px" %)21|(% style="width:142px" %)6|(% style="width:194px" %)(((128 - 129 -)))| (% style="width:177px" %)2|(% style="width:147px" %)(((130 - 131 -)))| (% style="width:152px" %) 2132 -| (%style="width:167px" %)|(%style="width:142px" %)|(% style="width:194px" %)2143|(% style="width:177px" %)3|(% style="width:147px" %)(((133 - 134 -)))| (% style="width:152px" %)3135 -| (%style="width:167px" %)|(%style="width:142px" %)|(% style="width:194px" %) 4321|(% style="width:177px" %)6|(% style="width:147px" %)(((136 - 137 -)))| (% style="width:152px" %)6138 -| (%style="width:167px" %)|(%style="width:142px" %)|(%style="width:194px" %)|(%style="width:177px" %)|(% style="width:147px" %)(((139 - 140 -)))| (% style="width:152px" %)7141 -| (%style="width:167px" %)|(%style="width:142px" %)|(%style="width:194px" %)|(%style="width:177px" %)|(% style="width:147px" %)(((142 - 143 -)))| (% style="width:152px" %)8144 -| (%style="width:167px" %)|(%style="width:142px" %)|(%style="width:194px" %)|(%style="width:177px" %)|(% style="width:147px" %)(((145 - 146 -)))| (% style="width:152px" %)9147 -| (%style="width:167px" %)|(%style="width:142px" %)|(%style="width:194px" %)|(%style="width:177px" %)|(% style="width:147px" %)(((148 - 149 -)))| (% style="width:152px" %) 10117 +|21|6|((( 118 +3412(High and low word conversion) 119 +)))|2|((( 120 +34127856 (High and low word conversion) 121 +)))|2 122 +| | |2143|3|((( 123 +21436587 124 +)))|3 125 +| | |4321|6|((( 126 +87654321 127 +)))|6 128 +| | | | |((( 129 +78563412 130 +)))|7 131 +| | | | |((( 132 +56781234 133 +)))|8 134 +| | | | |((( 135 +65872143 136 +)))|9 137 +| | | | |((( 138 +43218765 139 +)))|10 150 150 151 - *If HLword entersany other value,it will be treated as invalid.141 + Table 2-1 152 152 153 - Demo: Reads a 32-bit floating-point number at position D0 of PLC 143 +(% class="box errormessage" %) 144 +((( 145 +**✎Note: **If HLword enters any other value, it will be treated as invalid. 146 +))) 154 154 148 +== **addr_getshort(string addr[, number type, number hlword])** == 155 155 156 -(% style="text-align:center" %) 157 -[[image:企业微信截图_20210506180640.png||class="img-thumbnail" height="301" width="600"]] 150 +**Function:** Read 16-bit signed decimal address 158 158 159 -== **2.1 addr_getshort(string addr[, number type, number hlword])** == 160 - 161 -**Function:** 162 - 163 -Read 16-bit signed decimal address 164 - 165 165 **Parameters:** 166 166 167 167 //addr//: address ... ... @@ -179,13 +179,11 @@ 179 179 Failed: multi 180 180 181 181 ((( 182 -== ** 2.2addr_setshort(string addr, number num[, number type, number hlword])** ==169 +== **addr_setshort(string addr, number num[, number type, number hlword])** == 183 183 ))) 184 184 185 -**Function:** 172 +**Function:** Write 16-bit signed decimal address 186 186 187 -Write 16-bit signed decimal address 188 - 189 189 **Parameters:** 190 190 191 191 //addr//: address ... ... @@ -203,13 +203,11 @@ 203 203 Failed: multi 204 204 205 205 ((( 206 -== ** 2.3addr_getword(string addr[, number type, number hlword])** ==191 +== **addr_getword(string addr[, number type, number hlword])** == 207 207 ))) 208 208 209 -**Function:** 194 +**Function:** Read 16-bit unsigned decimal address 210 210 211 -{{id name="OLE_LINK6"/}}Read 16-bit unsigned decimal address 212 - 213 213 **Parameters:** 214 214 215 215 //addr//: address ... ... @@ -225,13 +225,11 @@ 225 225 Failed: multi 226 226 227 227 ((( 228 -== ** 2.4addr_setword(string addr, number num[, number type, number hlword])** ==211 +== **addr_setword(string addr, number num[, number type, number hlword])** == 229 229 ))) 230 230 231 -**Function:** 214 +**Function:**Write 16-bit unsigned decimal address 232 232 233 -Write 16-bit unsigned decimal address 234 - 235 235 **Parameters:** 236 236 237 237 //addr//: address ... ... @@ -249,13 +249,11 @@ 249 249 Failed: multi 250 250 251 251 ((( 252 -== ** 2.5addr_getint(string addr[, number type, number hlword])** ==233 +== **addr_getint(string addr[, number type, number hlword])** == 253 253 ))) 254 254 255 -**Function:** 236 +**Function:** Read 32-bit signed decimal address 256 256 257 -Read 32-bit signed decimal address 258 - 259 259 **Parameters:** 260 260 261 261 //addr//: address ... ... @@ -271,13 +271,11 @@ 271 271 Failed: multi 272 272 273 273 ((( 274 -== ** 2.6addr_setint(string addr, number num[, number type, number hlword])** ==253 +== **addr_setint(string addr, number num[, number type, number hlword])** == 275 275 ))) 276 276 277 -**Function:** 256 +**Function:** Write 32-bit signed decimal address 278 278 279 -Write 32-bit signed decimal address 280 - 281 281 **Parameters:** 282 282 283 283 //addr//: address ... ... @@ -295,13 +295,11 @@ 295 295 Failed: multi 296 296 297 297 ((( 298 -== ** 2.7addr_getdword(string addr[, number type, number hlword])** ==275 +== **addr_getdword(string addr[, number type, number hlword])** == 299 299 ))) 300 300 301 -**Function:** 278 +**Function:** Read 32-bit unsigned decimal address 302 302 303 -{{id name="OLE_LINK7"/}}Read 32-bit unsigned decimal address 304 - 305 305 **Parameters:** 306 306 307 307 //addr//: address ... ... @@ -317,13 +317,11 @@ 317 317 Failed: multi 318 318 319 319 ((( 320 -== ** 2.8addr_setdword(string addr, number num[, number type, number hlword])** ==295 +== **addr_setdword(string addr, number num[, number type, number hlword])** == 321 321 ))) 322 322 323 -**Function:** 298 +**Function:** Write 32-bit unsigned decimal address 324 324 325 -Write 32-bit unsigned decimal address 326 - 327 327 **Parameters:** 328 328 329 329 //addr//: address ... ... @@ -341,13 +341,11 @@ 341 341 Failed: multi 342 342 343 343 ((( 344 -== ** 2.9addr_getbit(string addr[, number type])** ==317 +== **addr_getbit(string addr[, number type])** == 345 345 ))) 346 346 347 -**Function:** 320 +**Function:** Read a bit of the register address 348 348 349 -Read a bit of the register address 350 - 351 351 **Parameters:** 352 352 353 353 //addr//: address ... ... @@ -363,13 +363,11 @@ 363 363 Failed: multi 364 364 365 365 ((( 366 -== ** 2.10addr_setbit(string addr, number num[, number type])** ==337 +== **addr_setbit(string addr, number num[, number type])** == 367 367 ))) 368 368 369 -**Function:** 340 +**Function:** Write a bit of the register address 370 370 371 -Write a bit of the register address 372 - 373 373 **Parameters:** 374 374 375 375 //addr//: address ... ... @@ -376,7 +376,7 @@ 376 376 377 377 //num//: value 378 378 379 - {{id name="OLE_LINK8"/}}[type = 0]not read through 1: read through348 +[type = 0]not read through 1: read through 380 380 381 381 [hlword = 0] Don't convert,See Form 2.1 382 382 ... ... @@ -387,13 +387,11 @@ 387 387 Failed: multi 388 388 389 389 ((( 390 -== ** 2.11addr_getfloat(string addr[, number type, number hlword])** ==359 +== **addr_getfloat(string addr[, number type, number hlword])** == 391 391 ))) 392 392 393 -**Function:** 362 +**Function:** Read 32-bit floating address 394 394 395 -Read 32-bit floating address 396 - 397 397 **Parameters:** 398 398 399 399 //addr//: address ... ... @@ -409,13 +409,11 @@ 409 409 Failed: multi 410 410 411 411 ((( 412 -== ** 2.12addr_setfloat(string addr, number num[, number type, number hlword])** ==379 +== **addr_setfloat(string addr, number num[, number type, number hlword])** == 413 413 ))) 414 414 415 -**Function:** 382 +**Function:** Write 32-bit floating address 416 416 417 -Write 32-bit floating address 418 - 419 419 **Parameters:** 420 420 421 421 //addr//: address ... ... @@ -433,13 +433,11 @@ 433 433 Failed: multi 434 434 435 435 ((( 436 -== ** 2.13addr_getdouble(string addr[, number type, number hlword])** ==401 +== **addr_getdouble(string addr[, number type, number hlword])** == 437 437 ))) 438 438 439 -**Function:** 404 +**Function:** Read 64-bit floating address 440 440 441 -Read 64-bit floating address 442 - 443 443 **Parameters:** 444 444 445 445 //addr//: address ... ... @@ -455,13 +455,11 @@ 455 455 Failed: multi 456 456 457 457 ((( 458 -== ** 2.14addr_setdouble(string addr, number num[, number type, number hlword])** ==421 +== **addr_setdouble(string addr, number num[, number type, number hlword])** == 459 459 ))) 460 460 461 -**Function:** 424 +**Function:** Write 64-bit floating address 462 462 463 -Write 64-bit floating address 464 - 465 465 **Parameters:** 466 466 467 467 addr: address ... ... @@ -479,13 +479,11 @@ 479 479 Failed: multi 480 480 481 481 ((( 482 -== ** 2.15addr_getstring(string addr, number length[, number type, number hlbyte])** ==443 +== **addr_getstring(string addr, number length[, number type, number hlbyte])** == 483 483 ))) 484 484 485 -**Function:** 446 +**Function:** Read the specified length string from address 486 486 487 -Read the specified length string from address 488 - 489 489 **Parameters:** 490 490 491 491 //addr//: address ... ... @@ -503,13 +503,11 @@ 503 503 Failed: multi 504 504 505 505 ((( 506 -== ** 2.16addr_setstring(string addr, string str[, number type, number hlbyte])** ==465 +== **addr_setstring(string addr, string str[, number type, number hlbyte])** == 507 507 ))) 508 508 509 -**Function:** 468 +**Function:** Write the specified length string to address 510 510 511 -Write the specified length string to address 512 - 513 513 **Parameters:** 514 514 515 515 //addr//: address ... ... @@ -527,13 +527,11 @@ 527 527 Failed: multi 528 528 529 529 ((( 530 -== ** 2.17addr_bmov(string dst, string src, number length)** ==487 +== **addr_bmov(string dst, string src, number length)** == 531 531 ))) 532 532 533 -**Function:** 490 +**Function:** Copy data from source address to destination address 534 534 535 -Copy data from source address to destination address 536 - 537 537 **Parameters:** 538 538 539 539 //dst//: destination address ... ... @@ -549,13 +549,11 @@ 549 549 **Failed: multi** 550 550 551 551 ((( 552 -== ** 2.18addr_fill(string addr, number num, number length)** ==507 +== **addr_fill(string addr, number num, number length)** == 553 553 ))) 554 554 555 -**Function:** 510 +**Function:** Write the same value to consecutive addresses 556 556 557 -Write the same value to consecutive addresses 558 - 559 559 **Parameters:** 560 560 561 561 //addr//: address ... ... @@ -571,13 +571,11 @@ 571 571 Failed: multi 572 572 573 573 ((( 574 -== ** 2.19addr_newnoaddr(string addr, number offset)** ==527 +== **addr_newnoaddr(string addr, number offset)** == 575 575 ))) 576 576 577 -**Function:** 530 +**Function:** Offset address value relative to //addr// 578 578 579 -Offset address value relative to //addr// 580 - 581 581 **Parameters:** 582 582 583 583 //addr//: address ... ... @@ -591,13 +591,11 @@ 591 591 Failed: multi 592 592 593 593 ((( 594 -== ** 2.20addr_newstataddr(string addr, number offset)** ==545 +== **addr_newstataddr(string addr, number offset)** == 595 595 ))) 596 596 597 -**Function:** 548 +**Function:** Offset station number relative to //addr //station number 598 598 599 -Offset station number relative to //addr //station number 600 - 601 601 **Parameters:** 602 602 603 603 //addr//: address ... ... @@ -610,12 +610,10 @@ 610 610 611 611 Failed: multi 612 612 613 -== ** 2.21addr_gethex64(string addr[, number type, number hlword])** ==562 +== **addr_gethex64(string addr[, number type, number hlword])** == 614 614 615 -**Function:** 564 +**Function:** Read 64-bit hexadecimal numbers 616 616 617 -Read 64-bit hexadecimal numbers 618 - 619 619 **Parameters:** 620 620 621 621 //addr//: address ... ... @@ -630,12 +630,10 @@ 630 630 631 631 Failed: multi 632 632 633 -== ** 2.22addr_sethex64(string addr, number num[, number type, number hlword])** ==580 +== **addr_sethex64(string addr, number num[, number type, number hlword])** == 634 634 635 -**Function:** 582 +**Function:** Write 64-bit hexadecimal addresses 636 636 637 -Write 64-bit hexadecimal addresses 638 - 639 639 **Parameters:** 640 640 641 641 //addr//: address ... ... @@ -656,11 +656,11 @@ 656 656 657 657 Operations on the serial port such as read, write, etc. must use ':' for full mode calls, ie operations on an open serial object. 658 658 659 -**Serial port name and mode :**604 +**Serial port name and mode** 660 660 661 661 The serial port configured in the communication configuration window cannot be configured again using the script. RS232 and RS458 (or RS422) can be used simultaneously, but RS422 and RS485 are mutually exclusive.For example, when the communication port is configured with COM1-485, the script can only open COM1-232, but not COM1-485/422. Similarly, when the communication port is configured with COM2-485, the script can only open COM2-232, but not COM2-485. 662 662 663 -Attempting to use a script to open a serial port in an unsupported mode will result in an error directly, as below 608 +Attempting to use a script to open a serial port in an unsupported mode will result in an error directly, as below. 664 664 665 665 |((( 666 666 local setup = { ... ... @@ -1500,7 +1500,7 @@ 1500 1500 1501 1501 **✎Note: ** 1502 1502 1503 -// {{id name="OLE_LINK1"/}}HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart).1448 +//HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart). 1504 1504 1505 1505 //Without any conditions. Direct use ("@W_HSW0") will cause the V-BOX to restart continuously.// When using ("@W_HSW0") address, please add judgment conditions, such as: connection to MQTT fails, there is no network, the value of a PLC address meets the condition or counts to a certain value. 1506 1506 ... ... @@ -1843,7 +1843,7 @@ 1843 1843 Faied: multi 1844 1844 1845 1845 ((( 1846 -== **9.7 {{id name="_Toc22969"/}}remote_com_start(string config)** ==1791 +== **9.7 remote_com_start(string config)** == 1847 1847 ))) 1848 1848 1849 1849 **Function:** ... ... @@ -1883,7 +1883,7 @@ 1883 1883 Failed: multi 1884 1884 1885 1885 ((( 1886 -== **9.9 {{id name="_Toc22824"/}}remote_com_state()** ==1831 +== **9.9 remote_com_state()** == 1887 1887 ))) 1888 1888 1889 1889 **Function:** ... ... @@ -1897,4 +1897,4 @@ 1897 1897 1. number, current pass-through status: 0-none 1,2-starting pass-through 3-penetrating 4,5-finishing pass-through 6-pass-through error 1898 1898 1. string, pass-through server domain name and port number, xxxx (domain name): xxx (port number) 1899 1899 1900 - {{id name="OLE_LINK9"/}}Failed: multi1845 +Failed: multi