该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信

前端之家收集整理的这篇文章主要介绍了该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

该协议实际上适用于PLC编程端口以及FX-232AW模块的通信。
通讯格式:
命令命令码目标设备
DEVICEREADCMD"0"X,Y,M,S,T,C,D
DEVICEWRITECMD"1"X,D
FORCEONCMD"7"X,C
FORCEOFFCMD"8"X,C
传输格式:RS232C
波特率:9600bps
奇偶:even
校验:累加方式(和校验)
字符:ASCII
16进制代码
ENQ05H请求
ACK06HPLC正确响应
NAK15HPLC错误响应
STX02H报文开始
ETX03H报文结束

帧格式:
STXCMDDATA......DATAETXSUM(upper)SUM(lower)
例子:
STX,CMD,ADDRESS,BYTES,ETX,SUM
02H,30H,31H,46H,36H,34H,03H,37H,34H
SUM=CMD+......+ETX;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位
1、DEVICEREAD(读出软设备状态值)
计算机向PLC发送:
始命令首地址位数终和校验
STXCMDGROUPADDRESSBYTESETXSUM
例子:从D123开始读取4个字节数据
02h30h31h,30h,46h,36h30h,34h03h37h,34h
地址算法:address=address*2+1000h
再转换成ASCII
31h,36h
PLC返回
STX1STDATA2NDDATA.....LASTDATAETXSUM
注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h33h35h38h34h03h44h,36h

2、DEVICEWRITE(向PLC软设备写入值)
始命令首地址位数数据终和校验
STXCMDGROUPADDRESSBYTES1STDATA2NDDATA......LASTDATAETXSUM
例子:向D123开始的两个存储器中写入1234,ABCD
02h31h31h,34h33h,34h,31h,32h,43h,44h,41h,42h03h34h,39h
PLC返回
ACK(06H)接受正确
NAK(15H)接受错误

3、位设备强制置位/复位
FORCEON置位
始命令地址终和校验
STXCMDADDRESSETXSUM
02h37haddress03hsum
FORCEOFF复位
始命令地址终和校验
STXCMDADDRESSETXSUM
02h38haddress03hsum

PLC返回
ACK(06H)接受正确
NAK(15H)接受错误
设备强制中的地址公式:Address=Address/8+100h

说明:
1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。
三菱FX系列PLC编程口通信源代码
fx_comm.h
FX系列PLC四种通信模式的特性
  首先讲讲FX系列PLC的通信方式。
  FX系列PLC根据使用的通信模块与协议不同,分为以下四种通信模式:
  1、PLC的N:N通信方式
  2、PLC双机并联通信方式
  3、PLC与计算机专有协议通信方式(无须梯形图,电脑直接读写操纵PLC)
  4、PLC与计算机无协议通信方式(梯形图RS指令方式,可自定义通信协议)
  以下将详细列出各通信模式的特性:
 N:N网络PLC并联专用协议计算机连接无协议通信
传输标准RS485RS485/RS422RS485/RS422或RS232
传输距离500mRS485/RS422:500mRS232:15m
连接数量8站1:11:N(N<=16)1:1
通信方式半双工FX,FX2c,FXon:半双工FX2n:全双工
数据长度固定7bit/8bit
校验无/奇/偶
停止位1bit/2bit
波特率38400bps19200bps300/600/1200/2400/4800/9600/19200
头字符固定无/有效
尾字符
控制线------
协议---格式1/格式4无
和校验固定无/有效
适用机型FX2n,FXonFX2n,FX,FX2cFX2n,FXon,FX2c
FX系列PLC专用协议通信指令一览
以下将详细列出PLC专用协议通信的指令:
指令注释 
BR以1点为单位,读出位元件的状态 
WR以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值 
BW以1点为单位,写入位元件的状态 
WW以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件 
BT以1点为单位,SET/RESET 位元件 
WT以16点为单位,SET/RESET 位元件,或写入值到字元件 
RR控制PLC运行RUN 
RS控制PLC停止STOP 
PC读出PLC设备类型 
TT连接测试 

注:位元件包括X,S以及T,C的线圈等;
  字元件包括D,KnX,KnY,KnM等。
FX系列PLC专用协议通信指令格式详解
 约定说明:
     ENQ为请求标志,ASCII值5,VB中以chr(5)表示;
     ACK为正确标志,ASCII值6,VB中以chr(6)表示;
     STX为请求标志,ASCII值2,VB中以chr(2)表示;
     EXT为请求标志,ASCII值3,VB中以chr(3)表示;
     表格中红色字为需要求和效验的部分;
     和效验为每一项的ASCII值的总和转换成十六进制后区低两位;
     站号、PLC号、元件数量、和效验都是以十六进制表示;
     等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH。
  1、批量读出位元件--BR指令
  格式:
12345678151617
PC侧:ENQ站号PLC号BR延时首地址数量和效验ACK站号PLC号
PLC侧:STX站号PLC号数据EXT和效验
91011121314
  [注]上述中:1、"PLC号"系统默认为"FF";2、"首地址"应以十进制表示,如首地址"X0018"表示从X寄存器的第18地址单元开始读取I/O量;3、"数量"表示读取的I/O量个数;4、"和效验"是指从"站号"到"数量"之间的各代码的ASCII码的累加和;5、PLC侧的响应码中"和效验"是指从"站号"到"EXT"之间的各代码的ASCII码的累加和。6、可以读出"X"、"Y"和"M"寄存器的内容
例如:要读出站号为0的Fx2n系列PLC的X00到X08共9点的状态值,延时100ms,假设采用CommunicationFormat(D8120)的Format1方式::
注释:请求站号PLC号命令延时元件首地址元件数量和效验
代码:ENQ00FFBRAX00000942
ASCII码:05H30H30H46H46H42H52H41H58H30H30H30H30H30H35H34H32H
  您只要将以上兰色部分的代码以字符串形式(VB中可以表示为CHR(5)&"00FFBRAX00000942")发送到PLC,就会有正确的回应信息,如下:
注释:头站号PLC号元件首地址尾和效验
代码:STX00FF001101101EXT05
ASCII码:02H30H30H46H46H30H30H31H31H30H31H31H30H31H03H30H35H
  若发送码有误,则有以下回应:
注释:头站号PLC号和效验
代码:NAK00FF06
ASCII码:15H30H30H46H46H30H36H

2、批量读出字元件--WR指令   格式:12345678151617PC侧:ENQ站号PLC号WR延时首地址数量和效验ACK站号PLC号PLC侧:STX站号PLC号数据EXT和效验91011121314   该命令使用方法与1(BR)命令相同,不再赘述。3、批量写入位元件--BW指令   格式:123456789PC侧:ENQ站号PLC号BW延时首地址数量写入值和效验PLC侧:ACK站号PLC号1011124、批量写入字元件--WW指令(M寄存器100单元置"1")   格式:01FFWWAM01000100010C123456789PC侧:ENQ站号PLC号WW延时首地址数量写入值和效验PLC侧:05H01FFAM01000100010CACK站号PLC号101112  请自行分析以上代码。请继续关注如何控制PLC的运行/停止。

猜你在找的VB相关文章