加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15267534595

SIEMENS三亚市西门子(授权)中国一级代理商-西门子华南区变频器总代理商

更新时间
2024-05-20 09:10:00
价格
请来电询价
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
联系电话
18126392341
联系手机
15267534595
联系人
梁涛
立即询价

详细介绍

我们看到网络层在通信时先由路由器确定路由路径,然后把分组发送到对方。对方接收到分组后,把分组按前后秩序组合起来,再解包为实际文档。

指的注意的是:由于网络层有了路由器,因此网络层支持星形网络结构。

现在我们来关注一下ISO/OSI的7层模型,如下:

图片


需要明确的是:从网络层再往上,各层之间发送的信息单位已经是完整的报文了。OSI模型也规定了报文的语法结构,限于篇幅给予忽略。

值得注意的是:RS232/RS485/RS422通信接口以及它们的定义,是非常明确的。包括管脚的电平,管脚的功能定义,以及接口在信息发送和接收信息时的数据流时序关系,这些都必须准确和严格,否则就无法执行信息交换。

当PLC与某电力仪表交换信息,并且这些电力仪表符合RS485/MODBUS-RTU通信规范。我们要做什么事呢?

第一、我们按菊花瓣结构的通信链路要求去接线,将PLC的通信接口与N个电力仪表接口连接起来。Zui后一个电力仪表的末端要配100欧的终端电阻。

第二、我们把这N个电力仪表按地址递增的原则确定各自的地址,例如01H、02H、1FH等等。这里的H表示是16进制,1F表示16+15=31。

第三、我们在PLC编程软件中设定好电力仪表规定的通信速率。

第四、我们在PLC编程软件中按电力仪表的数据区地址码设定好MODBUS通信码,以及各个子站的循环关系。

注意:这里的MODBUS通信码满足PLC的IEC 61131-3编程模块要求,一般的PLC梯形图没有此功能。梯形图满足IEC 61131-1要求,但不满足IEC 61131-3要求。

第五、在PLC的内存中开辟专用数据区,存放从电力仪表读取到并处理后的信息,以便让更高层的总站来读取信息。此数据区有一个名称,叫做数据点表,有时也简称通信协议。

Zui后,当然就是开机测试了。其中的内容很多,限于篇幅不再介绍。


我们来看一个在RS485网络上用MODBUS-RTU读取数据的例子,如下:

某电力仪表,地址是01H。在电力仪表内存第2000的位置上,放置了三相电流和三相电压等6个数据,每个数据占用两个字节,共12个字节。

此电力仪表的通信速率是9600bps。什么意思呢?bps表示一个0/1,也就是比特,这说明每秒钟这条总线上可以发送9600个比特。https://www.dgdqw.com/我们已经知道一个字节有8个数据位,1个起始位,1个奇偶校验位,刚好10位或者10个比特,所以,如果电力仪表的通信速率是9600bps,那么1秒钟就可以发送:9600/10=960个字节。

我们还知道,主站的读数据的帧结构(下行帧)中,有1个字节的地址,1个字节的功能码,2个字节的内存地址,2个字节的数据数量,2个字节的CRC校验码,总共有8个字节,所以主站发送读数据MODBUS通信帧占用的时间是:8X10/9600=8.33毫秒。

对于本例,我们知道MODBUS-RUT读数据的命令是0X03H,也即03命令。注意这里的写法:0X是字头,中间的03是命令,Zui后的H表示是16进制。

具体通信帧的是:01 03 07 D0 00 06 C5 45,其中0X01H是地址,0X03H是命令,0X07D0H是内存地址2000,0X0006H表示读取连续6个字,也即内存中的电流和电压参数,0XC545H是01 03 07 D0 00 06的CRC校验码。

那么电力仪表的回应帧(上行帧)的帧结构是:1个字节的地址,1个字节的功能码,1个字节的数据区字节数,12个字节的数据,2个字节的CRC校验码,总共17个字节,占用时间是:17X10/9600=17.7毫秒。

具体的仪表回应通信帧是:01 03 0C 00 64 0064 0064 00 DC 00 DC 00 DC D6 F5,其中0X01H和0X03H的意义同前,0X0CH表示上传数据区有12个字节,0X0064H表示A相电流为100A,后面的两组为B相和C相电流,均为100A,0X00DCH表示A相电压为220V,其后两组为B相和C相电压,均为220V,Zui后0XD6F5H为CRC校验码。

从主站发起下行通信帧,再等待10毫秒让从站回应,再接收到从站发还的上行通信帧,总历时为:

图片


如果有31个相同的仪表等待主站一一访问,则主站从访问第一个仪表开始,到Zui后回应完毕,总历时:

图片


这里的1.12秒就是在通信速率为9600bps下这31台仪表的读数据循环周期,且忽略了主站再次发送下行通信帧的等待时间,实际时间会略微再长一些。

相信,看到这里,大家对MODBUS-RTU下的通信帧应当有了较为深刻的认识。

提醒大家:一个字有两个字节。一般地,字节只能用来表达8个开关量。但对于模拟量,则要用字来表达。例如电流1250A,16进制下是04E2H,要用2个字节才能表达完整。也因此,各种电力仪表中,模拟量都是用字来表达的。


以下是MODBUS的部分常用功能码,也即命令码:

图片


以下是PLC在读取双投开关ASCO控制器的数据点表的下行和上行通信帧范例:

图片


相关产品

联系方式

  • 电  话:18126392341
  • 联系人:梁涛
  • 手  机:15267534595
  • 微  信:15267534595