| |
---|---|
(点击题目可以在互联网中搜索该题目的相关内容) 日期:2005-10-25 22:17:21 来源: 作者: 点击: | |
Twido PLC提供有ASCII协议,这样在理论上能使得Twido和其他任何支持串行通讯的设备建立通讯。在多数应用中,都是由PLC发出ASCII命令给其他设备,等待响应回复。但如果命令是由其他设备发给PLC,PLC时刻处于接收命令的情况下时,如何实现通讯呢?本文以Twido 和一种专用的“匀整”控制器(其协议格式类似于伦茨的通讯协议)的通讯为例进行描述。 1.设定端口2的参数: 点击高级按钮,在高级设置对话框设定如右:用100ms来作为一次通讯的间隔时间检测;因为在本例中,“匀整”发给PLC的命令结尾是不同的BCC校验码,所以我们无法用某个固定的结束字符来判断一个通讯帧。 2.程序实现: 说明:Twido运行后,等待接收命令;当接收到命令后,根据命令格式区分出是哪一类命令,并转入相应的子程序处理(子程序主要是数据格转换的处理,即把ASCII串表达的数据变为10进制的数值或把10进制的数值变为ASCII串表达的数据,并决定要回送的命令格式,最终由EXCH %MW400:10 指令发送给匀整),具体的子程序处理,可以参见源程序。 附:通讯协议 一、格式: 按照LENZN的协议进行通讯 1、发送命令 2、接受命令 二、功能设定: 1.“匀整”询问PLC参数设定值 (C11)--表示询问棉层调节系数(标准值60) 格式:EOT,31H,31H,31H,31H,ENQ EOT,A1, A2, C1, C2,ENQ; (C12)--表示询问棉层传感器初始值设定。 格式:EOT,31H,31H,31H,32H,ENQ EOT,A1, A2, C1, C2,ENQ; (C13)--表示询问给棉电机速度标准值设定。 格式:EOT,31H,31H,31H,33H,ENQ EOT,A1, A2, C1, C2,ENQ; (C14)--表示询问棉卷重量标准值设定。 格式:EOT,31H,31H,31H,34H,ENQ EOT,A1, A2, C1, C2,ENQ; 您收到数据后应首先核对从站地址,然后将C1,C2去掉ASC码。 再根据C1,C2回答参数值。 您的回答格式: STX,C1,C2,V1,V2,V3,V4,V5,EXT,BCC BCC=(((C1 XOR C2)XOR V1)XOR 。。。)XOR EXT C1,C2,V1,V2,V3,V4,V5,均含有ASC码 三、显示命令 匀整向PLC传递以下信息 (C20)--显示上一个卷的平均厚度; 格式:EOT,31H,31H,STX,32H,30H,V1,V2,V3,V4,V5,EXT,BCC EOT,31H,31H,STX, C1, C2,V1,V2,V3,V4,V5,EXT,BCC BCC=(((C1 XOR C2)XOR V1) XOR 。。。)XOR EXT 代码20的值=(V1-30H)*10000+(V2-30H)*1000+(V3-30H)*100+(V4-30H) +(V5-30H) C1,C2,V1,V2,V3,V4,V5,均含有ASC码 在这里V1=30H; (C21)--每生产一个棉卷,显示出修正后的给棉输出值。 格式:EOT,31H,31H,STX,32H,31H,V1,V2,V3,V4,V5,EXT,BCC EOT,31H,31H,STX, C1, C2,V1,V2,V3,V4,V5,EXT,BCC BCC=(((C1 XOR C2)XOR V1) XOR 。。。)XOR EXT 代码21的值=(V1-30H)*10000+(V2-30H)*1000+(V3-30H)*100+(V4-30H) +(V5-30H) C1,C2,V1,V2,V3,V4,V5,均含有ASC码 在这里V1=30H; (C22)--显示电子称称盘上的重量。 格式:EOT,31H,31H,STX,32H,32H,V1,V2,V3,V4,V5,EXT,BCC EOT,31H,31H,STX, C1, C2,V1,V2,V3,V4,V5,EXT,BCC BCC=(((C1 XOR C2)XOR V1) XOR 。。。)XOR EXT 代码22的值=(V1-30H)*10000+(V2-30H)*1000+(V3-30H)*100+(V4-30H) +(V5-30H) C1,C2,V1,V2,V3,V4,V5,均含有ASC码 在这里V1=30H; 您回答为ACK或NAK (EOT=04H STX=02H EXT=03H ENQ=05H ACK=06H NAK=15H) |
|
上一篇: Schneider-施耐德LEC使用技巧文集[第2讲]——ASCII码转换为HEX和BCD码的方法 下一篇: PLC之一——什么是PLC? |