1. 通信协议设置
串口助手COM设置如下:1 位起始位、7 位数据位、偶校验、1 位停止位,波特率 9600,传输字符格式为ASCII 码(PLC 不用设置)。
2. 通信指令
PLC 只能对上位机发出的指令做回答,不能主动命令上位机。编程口通信有 4 条指
令,代码分别如下:
传送介质:标准RS-232C;
通信协议:三菱FX专用通信协议(如本文);
波特率:9600;
极性:偶数(固定,不可以选择);
通信验证:字符串综和检查;
通信用字码:ASCII码,只能下列各码;
每个ASCII码的位元组合如下所示:
3. 通信格式
注:一次成功的通讯
4. 读的通信字符串格式
CMD为“0”即为元件读出指令,这个指令可读出XYMSTC输出线圈的ON/OFF状态与TCD的现在值,读出时,PLC处于RUN与STOP状态下均可。
发送(上位机给PLC):
注:指令“0”:指定从元件地址开始读取出n个BYTE;
元件地址:PLC当中各部元件的地址,4位数,具体参考下文对应表单;
BYTE数:一次要读出BYTE数,4位数,可指定01H-40H。
接受(PLC给上位机回复):
注:一笔资料即为1个BYTE的资料,每一个BYTE被分为上位4个位元(b7~b4或者b15~b12)或者下位4个位元(b3~b0或者b11~b8)来读取,而且,4个位元的内容均是1个ASCII码字元以16进制来表现;
PLC是在接受完上位机问句字串的下一次扫描的END指令被执行时,才送出回答句;
如果PLC无法了解上位机的问句内容时,PLC送出‘NAK’,即15H。
例1:从Y0开始读出2个BYTES(读出Y0-Y7,Y10-Y17的ON/OFF)。
35H对应5, 38H对应8, 30H对应0, 30H对应0。ON为1,OFF为0。
例2:从D123开始读出4个BYTES(读出D123,D124的现在值)。
D123与D124值为0
假定回复如下:
D123:
D124:
5. 写的通信字符串格式
CMD为“1”即为元件写入指令,这个指令可读出XYMSTC输出线圈的ON/OFF状态与TCD的现在值,写入时,PLC处于RUN与STOP状态下均可。
发送(上位机给PLC):
注:指令“1”:指定从元件地址开始写入出n个BYTE;
元件地址:PLC当中各部元件的地址,4位数,具体参考下文对应表单;
BYTE数:一次要写入BYTE数,4位数,可指定01H-40H。
例1:将下列16位1,0组合(ON/OFF)状态写入Y0~Y17。
35H对应5, 38H对应8, 30H对应0, 30H对应0。ON为1,OFF为0。
例2:从D123开始写入2个BYTES(写入D123的现在值)。
D123:
接受(PLC给上位机回复):
“ACK”06H:写入正常
“NAK”15H: 写入不正常
6. 强制ON/OFF的通信字符格式
CMD为“7”即为元件强制ON指令,这个指令可读出XYMSTC输出线圈的为ON。CMD为“8”即为元件强制OFF指令,这个指令可读出XYMSTC输出线圈的为OFF。
发送(上位机给PLC):
强制ON
强制OFF
例:强制Y0输出为ON
查表得元件地址:0500
接受(PLC给上位机回复):
“ACK”06H:写入正常
“NAK”15H: 写入不正常
附件:元件地址表
总结不易,请大家点赞关注一波,谢谢!