简介
在一个操作中复制存储器。将源地址 (参数 2) 中的 (参数 3) 字节复制到目标地址 (参数 1)。
源地址中的NULL字符也会被复制。目标地址的末尾不添加NULL。
如果注册了Tag,则可以使用复制存储器(字符串模式)。
格式
memcpystr(目标地址, 源地址, 字数)
参数1:控制器/PLC地址、系统变量或内部寄存器
参数2:控制器/PLC地址、系统变量或内部寄存器
参数3:数值(参数3的有效范围是1~640。)
表达式示例:
memcpystr ([w:[PLC1]TagName1], [w:[PLC1]TagName2], 5)
上例从PLC1的TagName2中读取5字节的数据,然后写入PLC1的TagName1。
当用复制存储器(字符串模式)(memcpystr)函数向LS区写入数据时,只能将数据写入用户区。不能将数据写入系统区(LS0000至LS0019)、特殊区(LS2032至LS2047)或保留区(LS2048至LS2095)。但是,可以从这些区中读取数据。
不能将寄存器的数据类型设置为[DATE_AND_TIME]。
如果参数1和参数2使用16位寄存器,1个寄存器被视为2个字符。如果用32位寄存器,1个寄存器被视为4个字符。与D脚本的位长无关。
如果定义的寄存器不能按寄存器平均分配字节数,将按如下方式处理。
例如,memcpystr([w:[PLC1]W30.3000], [w:[PLC1]BD1000], 5)
(参数1(16位长),参数2(32位长),文本数据模式4)
读取:读取指定字节数的数据。(读取0x11~0x55)
写入:写入指定字节数量的数据,在剩余区域写入0。未复制的寄存器,其中的数据保持不变。(上例中的“0xAA”,“0xBB”)