简介
用一个操作复制存储器。将源地址(参数 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”)。