在雷诺尔PLC程序中,$MOV "FX4188K00" D90 是一条 字符串传送指令,其作用是将字符串 "FX4188K00" 的ASCII码逐个字符传送到以数据寄存器 D90 为起始地址的连续寄存器中。具体解析如下:
1. 指令功能
$MOV:雷诺尔PLC中用于字符串传送的指令(与常规数值传送指令MOV区分)。"FX4188K00":源字符串,包含9个字符(F,X,4,1,8,8,K,0,0)。D90:目标寄存器起始地址,字符串的每个字符将依次存入D90、D91、D92……等连续寄存器。
2. 存储方式
ASCII码存储:每个字符占用1字节(8位),但三菱PLC的数据寄存器为16位(2字节)。因此:
例如:
F的ASCII码为0x46,则D90的值为0x0046。字母/数字/符号(如
F,X,4):每个字符的低8位存储其ASCII码,高8位补零。汉字或其他非ASCII字符:占用2字节(1个寄存器),但本例中无此类字符。
寄存器分配:
D90:存储F和X的ASCII码(0x0046和0x0058,具体存储方式取决于PLC型号,可能合并或分开存储)。D91:存储4和1的ASCII码。以此类推,
D94存储最后一个0的ASCII码。
3. 典型应用场景
设备标识符存储:将模块型号(如
"FX4188K00")存入寄存器,供后续程序读取或通信使用。字符串处理:在需要动态生成或解析字符串的场合(如Modbus通信中的设备地址设置)。
4. 注意事项
寄存器数量:确保目标寄存器区域足够存储整个字符串(本例需
D90~D94共5个寄存器)。数据类型匹配:若后续操作需将寄存器内容作为数值使用,需注意ASCII码与数值的转换(如
0x0046对应十进制70,而非字符F)。指令兼容性:不同型号的三菱PLC可能对字符串指令的支持略有差异,需参考具体手册。
5. 对比常规 MOV 指令
常规
MOV:用于数值传送(如MOV D0 D1将D0的数值复制到D1)。$MOV:专用于字符串传送,需明确源字符串和目标寄存器起始地址。
示例代码(三菱GX Works2环境)
ladder// 假设需将字符串 "FX4188K00" 存入 D90 开始的寄存器LD M8000 // 常ON触点(触发条件)$MOV "FX4188K00" D90 // 执行字符串传送
执行后:
D90=0x0046(F)D91=0x0058(X)D92=0x0034(4)D93=0x0031(1)D94=0x0030(0,最后一个字符)

