三菱FX系列PLC编程口通信协议举例

    技术2022-05-20  51

    最近研究三菱FX2N系列的PLC,FX2N-128MR ,整理一下协议报文;

    1、DEVICE READ(读出软设备状态值)

    计算机向PLC发送:

    命令

    首地址

    位数

    和校验

    STX

    CMD

    GROUP ADDRESS

    BYTES

    ETX

    SUM

    例子:从D123开始读取4个字节数据

    02h

    30h

    31h,30h,46h,36h

    30h,34h

    03h

    37h,34h

    地址算法:address=address*2+1000h

    再转换成ASCII

    31h,30h,46h,36h

    PLC返回

    STX

    1ST DATA

    2ND DATA

    .....

    LAST DATA

    ETX

    SUM

    注:最多可以读取64个字节的数据

    例子:从指定的存储器单元读到3584这个数据

    02h

    33h

    35h

    38h

    34h

    03h

    44h,36h

    2、DEVICE WRITE(向PLC软设备写入值)

    命令

    首地址

    位数

    数据

    和校验

    STX

    CMD

    GROUP ADDRESS

    BYTES

    1ST DATA

    2ND DATA

    ......

    LAST DATA

    ETX

    SUM

    例子:向D123开始的两个存储器中写入1234,ABCD

    02h

    31h

    31h,30h,46h,36h

    30h,34h

    33h,34h,31h,32h,43h,44h,41h,42h

    03h

    34h,39h

    PLC返回

    ACK (06H) 接受正确

    NAK (15H) 接受错误

    3、位设备强制置位/复位

    FORCE ON置位

    命令

    地址

    和校验

    STX

    CMD

    ADDRESS

    ETX

    SUM

    02h

    37h

    address

    03h

    sum

    FORCE OFF复位

    命令

    地址

    和校验

    STX

    CMD

    ADDRESS

    ETX

    SUM

    02h

    38h

    address

    03h

    sum

    PLC返回

    ACK(06H) 接受正确

    NAK(15H) 接受错误

    设备强制中的地址公式:Address=Address/8+100h

    说明:

    1.帧中的BYTES表示需要读取或者写入的字节数。

    2.地址算法上有说明。

    3.累加和是从STX后面一个字节开始累加到ETX的和。

    三菱FX系列PLC编程口通信协议总览

    该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。感谢网友visualboy提供。

    通讯格式:

    命令

    命令码

    目标设备

    DEVICE READ CMD

    "0"

    X,Y,M,S,T,C,D

    DEVICE WRITE CMD

    "1"

    X,Y,M,S,T,C,D

    FORCE ON CMD

    " 7"

    X,Y,M,S,T,C

    FORCE OFF CMD

    "8"

    X,Y,M,S,T,C

    传输格式: RS232C 波特率: 9600bps 奇偶: even 校验: 累加方式(和校验) 字符: ASCII

    16进制代码:

    ENQ

    05H

    请求

    ACK

    06H

    PLC正确响应

    NAK

    15H

    PLC错误响应

    STX

    02H

    报文开始

    ETX

    03H

    报文结束

    帧格式:

    STX

    CMD

    DATA

    ......

    DATA

    ETX

    SUM(upper)

    SUM(lower)

    例子:

    STX ,CMD ,ADDRESS, BYTES, ETX, SUM

    02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H

    SUM=CMD+......+ETX;

    30h+31h+30h+46h+36h+30h+34h+03h=74h;

    累加和超过两位取低两位


    最新回复(0)