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

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

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

帧格式:@H_502_5@STXCMDDATA......DATAETXSUM(upper)SUM(lower)@H_502_5@例子:@H_502_5@STX,CMD,ADDRESS,BYTES,ETX,SUM@H_502_5@02H,30H,31H,46H,36H,34H,03H,37H,34H@H_502_5@SUM=CMD+......+ETX;@H_502_5@30h+31h+30h+46h+36h+30h+34h+03h=74h;@H_502_5@累加和超过两位取低两位@H_502_5@1、DEVICEREAD(读出软设备状态值)@H_502_5@计算机向PLC发送:@H_502_5@始命令首地址位数终和校验@H_502_5@STXCMDGROUPADDRESSBYTESETXSUM@H_502_5@例子:从D123开始读取4个字节数据@H_502_5@02h30h31h,30h,46h,36h30h,34h03h37h,34h@H_502_5@地址算法:address=address*2+1000h@H_502_5@再转换成ASCII@H_502_5@31h,36h@H_502_5@PLC返回@H_502_5@STX1STDATA2NDDATA.....LASTDATAETXSUM@H_502_5@注:最多可以读取64个字节的数据@H_502_5@例子:从指定的存储器单元读到3584这个数据@H_502_5@02h33h35h38h34h03h44h,36h@H_502_5@@H_502_5@2、DEVICEWRITE(向PLC软设备写入值)@H_502_5@始命令首地址位数数据终和校验@H_502_5@STXCMDGROUPADDRESSBYTES1STDATA2NDDATA......LASTDATAETXSUM@H_502_5@例子:向D123开始的两个存储器中写入1234,ABCD@H_502_5@02h31h31h,34h33h,34h,31h,32h,43h,44h,41h,42h03h34h,39h@H_502_5@PLC返回@H_502_5@ACK(06H)接受正确@H_502_5@NAK(15H)接受错误@H_502_5@@H_502_5@3、位设备强制置位/复位@H_502_5@FORCEON置位@H_502_5@始命令地址终和校验@H_502_5@STXCMDADDRESSETXSUM@H_502_5@02h37haddress03hsum@H_502_5@FORCEOFF复位@H_502_5@始命令地址终和校验@H_502_5@STXCMDADDRESSETXSUM@H_502_5@02h38haddress03hsum@H_502_5@@H_502_5@PLC返回@H_502_5@ACK(06H)接受正确@H_502_5@NAK(15H)接受错误@H_502_5@设备强制中的地址公式:Address=Address/8+100h@H_502_5@@H_502_5@说明:@H_502_5@1.帧中的BYTES表示需要读取或者写入的字节数。@H_502_5@2.地址算法上有说明。@H_502_5@3.累加和是从STX后面一个字节开始累加到ETX的和。@H_502_5@三菱FX系列PLC编程口通信源代码@H_502_5@fx_comm.h@H_502_5@FX系列PLC四种通信模式的特性@H_502_5@  首先讲讲FX系列PLC的通信方式。@H_502_5@  FX系列PLC根据使用的通信模块与协议不同,分为以下四种通信模式:@H_502_5@  1、PLC的N:N通信方式@H_502_5@  2、PLC双机并联通信方式@H_502_5@  3、PLC与计算机专有协议通信方式(无须梯形图,电脑直接读写操纵PLC)@H_502_5@  4、PLC与计算机无协议通信方式(梯形图RS指令方式,可自定义通信协议)@H_502_5@  以下将详细列出各通信模式的特性:@H_502_5@ N:N网络PLC并联专用协议计算机连接无协议通信@H_502_5@传输标准RS485RS485/RS422RS485/RS422或RS232@H_502_5@传输距离500mRS485/RS422:500mRS232:15m@H_502_5@连接数量8站1:11:N(N<=16)1:1@H_502_5@通信方式半双工FX,FX2c,FXon:半双工FX2n:全双工@H_502_5@数据长度固定7bit/8bit@H_502_5@校验无/奇/偶@H_502_5@停止位1bit/2bit@H_502_5@波特率38400bps19200bps300/600/1200/2400/4800/9600/19200@H_502_5@头字符固定无/有效@H_502_5@尾字符@H_502_5@控制线------@H_502_5@协议---格式1/格式4无@H_502_5@和校验固定无/有效@H_502_5@适用机型FX2n,FXonFX2n,FX,FX2cFX2n,FXon,FX2c@H_502_5@FX系列PLC专用协议通信指令一览@H_502_5@以下将详细列出PLC专用协议通信的指令:@H_502_5@指令注释 @H_502_5@BR以1点为单位,读出位元件的状态 @H_502_5@WR以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值 @H_502_5@BW以1点为单位,写入位元件的状态 @H_502_5@WW以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件 @H_502_5@BT以1点为单位,SET/RESET 位元件 @H_502_5@WT以16点为单位,SET/RESET 位元件,或写入值到字元件 @H_502_5@RR控制PLC运行RUN @H_502_5@RS控制PLC停止STOP @H_502_5@PC读出PLC设备类型 @H_502_5@TT连接测试 

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

原文链接:https://www.f2er.com/vb/262720.html

猜你在找的VB相关文章