使用外部存储器时,请阅读以下限制。
5.6.3 外部存储器使用限制
对寄存器地址来说,只能使用LS区和USR区(扩展用户区)。
D脚本和全局D脚本的临时地址的管理与扩展脚本临时地址的管理是分开的。因此,对D脚本和全局D脚本的临时地址的更改不会反映在扩展脚本的临时地址中。
可以调用由D脚本/全局D脚本创建的自定义函数,但是如果在该函数内访问内部寄存器以外的寄存器地址,它可能不会正常发挥作用。此外,在传输时(为人机界面创建数据期间),单独为D脚本、全局D脚本和扩展脚本创建自定义函数。
当从函数中调用函数时,最大的嵌套层数是9层。
最多可以调用254个函数。(用“Call”最多可调用254个函数。)
扩展脚本不影响标签计数。
如果D脚本或全局D脚本调用仅扩展脚本支持的函数(例如字符串运算),函数将不能发挥作用。
可用数据格式是Bin。禁用BCD数据格式。
发送缓冲器的大小是2048字节,而接收缓冲器的大小是8192字节。在至少80%的接收缓冲器充满接收数据后,CTS线置OFF。
不能同时选择D脚本/全局D脚本和扩展脚本。注意下表中列出的组合。
扩展串口设置 |
D脚本/全局D脚本 扩展脚本的扩展串口函数 |
扩展脚本的扩展串口函数 |
---|---|---|
D脚本/全局D脚本 |
O:可以运行 |
X :不能运行 |
扩展脚本 |
X :不能运行 |
O:可以运行 |
字符串设置的符号用法
当用“_strset()”和其他函数使用字符串时,需用双引号(“”)将字符串括起来。要在字符串中显示双引号串,可在之前附加一个“\”号,如[\"]。由于不能用单个符号表示 “\”,可使用字符代码表达式,如strset(databuf0,92)。
例如,
"ABC\"DEF"→ABC"DEF
"ABC\DEF"→ABC\DEF
"ABC\\"DEF"→ABC\"DEF
"ABC\\DEF"→ABC\\DEF
专用扩展串口缓冲器的大小 databuf0, databuf1, databuf2和databuf3都是1KB。
参数中不区分大小写。
在扩展脚本中,使用定义了访问类型的寄存器地址时,可使用的指令和运算符如下。
偏移地址
加 (+)、减 (-)、取模 (%)、乘 (*)、除 (/)、赋值 (=)
文件夹名或文件名不能使用以下字符,否则会造成错误
:, = + / " [] | < > ? [空格]
但是,在复制文件函数中,也不能使用以下字符。
: , = + / " [] | < > ? ~ * \
以下限制适用于CF、SD和USB文件操作。
文件名只能使用8.3格式(其中8个字符用于文件名、点号,3个字符用于扩展名)。
要指定根文件夹,请将“ ”(空字符串)指定为文件夹名称。
在相同扩展脚本中读取相同寄存器地址时注意事项
即使在相同扩展脚本中使用相同的寄存器地址,从寄存器地址中读取的值也会由于扩展脚本处理时间的不同而有所不同。
要避免这种情况,请编程脚本,把数据临时保存在内部寄存器或临时地址中。
例如,
使用USR区时
[w:[#INTERNAL]USR20000]=[w:[#MEMLINK]0100]
[w:[#INTERNAL]USR00000]=[w:[#INTERNAL]USR20000]
[w:[#INTERNAL]USR00001]=[w:[#INTERNAL]USR20000]
使用临时地址时
[t:0000]=[w:[#MEMLINK]0100]
[w:[#INTERNAL]USR00000]=[t:0000]
[w:[#INTERNAL]USR00001]=[t:0000]
脚本执行期间,内置函数不会受到参数变化的影响。但,下列函数可能受影响。
执行这些函数上的脚本时,请编程不会更改参数的脚本。
memring
_memshift
_memsearch