在雷诺尔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
,最后一个字符)