文档介绍:文档名
Those who adhere to the principles of wisdom, have right attitudes, and true to their words and discharge their dut
0:协议格式1
1:协议格式4
在程序中,我们设置如下:8位数据位,无校验,1位停止位,9600波特率,有帧头和帧尾,无协议模式,不自动加和校验,所以D8120=H0F81(H表示16进制)
通信相关字和位-D8120
D8124和D8125分别是数据帧的帧头和帧尾,所以在程序中
D8124=H007E
D8125=H000D
D8122和D8123分别是剩余发送字符的个数和已经接收到的字符个数,在本程序中不需使用。
在进行通讯时,我们设置的通信超时时间是10ms。因为在D8129中默认单位是10ms。所以D8129=K1(K表示常数)
通信相关字和位
M8161:8位/16位选择
当M8161为OFF时,数据帧处理的是16位有效数据。也就是一个字包含两个有效的信息字符。发送和接收都是先低字节后高字节顺序。
当M8161位ON时,数据帧处理的是8位有效数据。一个字中只包含一个有效的信息字符,放在低字节中,高字节信息忽略。
M8122:数据发送请求标志
当PLC处于接收完成状态或接收等待态时,用脉冲触发M8122,将使得从D21开始的连续12个数据被发送。当发送完成后,M8122自动被复位。然后PLC进入接收等待状态。
通信相关字和位
M8123:接收完成标志
当M8123置位时,表明接收已完成,此时需要将接收到的数据从接收缓冲区转移到用户指定的数据区,然后复位M8123。
M8129:超时标志
从下图中我们看到,接收数据中途中断时,如果在D8129规定的时间内仍然没有收到新的数据,则超时标志置位。如果该标志置位,则一次接收完成。需要手工复位M8129。
通信相关字和位
RS指令:
RS指令是使用RS232C口进行发送和接收串行数据的指令。
数据格式在D8120中设定。并且在D8120中修改后必须使RS指令复位后更改才生效。
在程序中尽管可以多次使用RS指令,但同一时间必须保证只有一个RS指令被驱动。
当PLC只接收数据时,可将发送数据数置0,而只发送数据时,可将接收数据数置0。
在一次完整的通讯过程中,RS指令必须保持一直有效,直至接收数据完成。而数据发送请求位OFF时间一般要求大于程序执行一周的时间。
和RS指令相关的标志位:M8122,M8123
通信指令
1、判断是否有有效的运行停机命令信号,如果没有则发送轮询1#机的运行频
率的命令随后立刻开始应答信号接收(发送在定时1S到时启动),如接受
完成则对轮询次数累计,并且校验应答信号,如果轮询成功则从Y1输出指
示信号并计算出运行频率;如失败则统计轮询失败次数。
2、如果有有效的运行或停机命令则发送广播运行或者广播停机命令,命令的
发送是在判定该命令有效后启动一次。
3、关于轮询和运行、停机命令的发送处理:
X0闭合-表示广播起动 X1闭合-表示广播停机。
如果X0闭合则置M0,X1闭合则置M1,这样即使X0和X1随后松开,运行和停机
命令也不会消失。
程序构架
初始化,只执行一次。PLC运行后,M8002仅在瞬间为ON,其余时间均保持OFF。
设置数据长度8位、无校验、波特率9600、有起始和终止字符、选择RS485模式,指定首字节为”0X7E”,尾字节为”0x0D”,通讯超时为10ms,设置通讯为8位数据模式,清零M0~M4,清零D10。
如果M2为OFF,则无有效的广播命令,发送轮询1#机的运行频率。如果T7定时没到,则设置T7定时1S,同时累计循环次数。T7的时间单位默认100ms。
PLC与TD2000变频器通信程序
如果T7定时1S到,则计算1S内循环的次数(主要是为了测试扫描周期的长度)。同时如果M2为OFF(意味着没有有效的广播命令),则开始轮询1#变频器的运行频率。准备完毕发送的字符后,清除上次的接收次数计数器D200,同时启动发送(M8122置为ON)。频率查询命令每1S执行一次。
PLC与TD2000变频器通信程序
如果M0和M2都为ON,则表示广播启动命令有效,发送广播启动命令,特意指定接收字节为7,便于产生两次接收完成标志。
PLC与TD2000变频器通信程序
如果M1和M2都为ON,则表示广播停机命令有效,发送广播停机命令,特意指定接收字节为7,便于产生两次接收完成标志。
PLC与TD2000变频器通信程序
如