现在有个项目,需要MODBUS控制11个变频器,那该怎么办?
理论上把前面的通信程序复制11遍不就行了,但却是不可行的,为什么呢?因为串口在同一-时间,只能进行一次数据交互。这个一次,是指一次读或是写操作。这就好比-一个很窄的路口,一次只能通过一辆汽车,如果11辆汽车一起通过,势必会引起堵塞,一辆也过不去,但我们需要过11辆怎么办?那就需要交通灯或是交警指挥交通,通信也一样,也需要有交通灯或是交警,而在MODBUS通信中,就需要他来当交警,通过程序控制通信流程,这就是轮询方式。
而M0DBUS通信实现轮询,有两个常用的方法。
1时间间隔法
所谓时间间隔法,就是每个操作分配一个固定的时间,比如第一秒写入频率,第二秒读取频率,第三秒读取电流,当然,这个时间是要根据实际情况来设置的,
2功能块触发法
功能块触发法,是利用功能块的状态参数来触发下一次通信,也就是通信的时候使用的BUSY信号。
以上,就是两种常用的轮询方法,它们各有优缺点,最好的方式就是两者结合。利用时间间隔; . 这个时间间隔的设置就很讲究,时间太短,可能通信还没完成,时间太长影响效率。而利用功能块的BUSY信号,可以很好解决这个问题,但是,一旦一个环节通信出错,BUSY信号无法给出,就会造成后面的通信无法进行,那么该如何结合呢?那就是用时间间隔来确定从站之间的通信间隔,而同一个从站的读写就用功能块信号触发, 这样即使通信有错误,也只是影响一个从站。我们为每个从站分配30毫秒的时间,那么轮询10个从站只需要300毫秒,这基本能满足我们的需求,而又能保证每个站的通信时间。因为超过10个从站,就不建议用MODBUS通信了,那样就要考虑使用总线了。而一个从站内部,要读写多次的时候,就用BUSY信号触发。现在,华杰智控推出一款产品来解决这问题。
华杰智控HJ6311拥有11路独立485网关用于一对多集成ModbusSRS485设备,形成MODBUS协议并连接到PROFINET,实现PROFINET监控MODBUS设备的技术要求。可以实现Modbus转profinet、profinet转Modbus Rtu、协议转换功能;主要用于西门子、Modbus 协议相关接口的变频器、 智能电表、温控表、称重仪、智能高低压电器、电量测量装置、各种变送器、智能现场测量设备及仪表等。 通过把modbus RTU的命令映射到对应的PLC的寄存器地址,生成GSD文件, 然后导入西门子编程软件S7或者博图,组态下载到PLC。 西门子PLC无需进行modbus编程,可以直接通过读取寄存器地址来读写RTU数据实现控制RTU。
11路独立485网关每个485可以接多个RTU设备,11路网关同时并发数据,速度更快。
2个Profinet网络接口,方便组网 11路独立485转profinet网关 每路485可以接多个RTU设备,设置不同的RTU参数。 最多执行130条modbus命令 支持级联扩展
支持Profinet主从通讯协议。
组网方便支持多种网络结构。
支持ModubsRTU转Profinet协议
支持Profinet Modbus RTU组态
支持西门子200smart 支持西门子300
支持西门子1200
支持西门子1500
自动生成GSD文件