轮询的设置及效果
在塔石工业级串口服务器当中有这样一种功能——Modbus 轮询。
这是什么呢?
有一些服务器是只能接受数据,不能主动下发数据,但在Modbus协议中是存在一种主从关系,主站需要主动发送指令给从站,从站再回复数据给主站。
像这种只能接受不能发送的服务器要想收到从站的数据必须要发送指令才行,那怎么办呢?
这就需要依靠轮询来解决,通过串口服务器下发从站指令,这不仅可以解决类似服务器的问题,也可以减轻其他需要下发指令的服务器的工作量。
图 1 未设置轮询 图 2 设置轮询后
在塔石串口服务器当中轮询有两种类型,一是寄存器轮询,二是自定义轮询。
这两种类型有什么不一样呢?
我们来看看。
一、寄存器轮询
要想使得串口服务器轮询010200010001CRC这条指令,使用寄存器轮询应该怎么设置呢?
我们看下图UDP配置工具上的设置,在网页配置中读取开出指的是功能码01,读取开入指的是功能码02,读取模出指的是功能码03,读取模出指的是功能码04。
按照下图3设置,塔石串口服务器在连接成功服务器之后会每秒向串口发送一次010200010001CRC,我们连接一个串口助手来观察一下,因为没有接串口设备,所以没有回复的数据。
我们可以看到在串口助手上如图4已经是每秒接收到一次轮询指令,CRC已经自动计算出来。
图 3 寄存器轮询设置图
图 4 寄存器轮询效果图
二、自定义轮询
自定义轮询和寄存器轮询的作用其实是一样的,只是方式不同。
很多人弄不明白这个寄存器轮询,填写不来,感觉有点麻烦。
因此我们塔石物联网为了满足广大用户的需求,提高用户的使用满意度,增加了自定义轮询,给你一个文本框,要发什么指令,自定义填写,可以原封不动的将指令填上,算不来CRC可以直接勾选CRC,这样串口服务器自动就会帮你计算好一并下发。
我们看看图片是怎么设置,如图5,在字串1上打钩表示下发这一条轮询指令,这个很简单,只需要填写指令即可,再看看串口助手上的效果如图6,CRC也是计算后再发给串口的。
自定义轮询有什么好处呢,在寄存器轮询中,功能码只能是01,02,03,04,但是自定义轮询没有功能码的限制,可以05,06等。
图 5 自定义轮询设置图
图 6 自定义轮询效果图
使用串口服务器的轮询需要注意一下4点,可能会导致轮询设置不成功,数据无法正确返回。
1、轮询的时间间隔最小值是1s,轮询的单位是s。
2、轮询最多只能轮询4条,寄存器轮询和自定义轮询都是4条,若需要增加,可以联系商务定制。
3、4条轮询指令是分开发送的,间隔最小为1s,那么轮询完4条至少需要4s的时间,才能继续轮询第一条指令。
4、设置了轮询,但是服务器查询也照常下发,这种情况我们不建议这么使用,容易造成数据冲突,建议设置的轮询,服务器就不要下发查询指令了。
除了串口服务器,杭州塔石物联网公司旗下的其他产品也都具备轮询功能,如4G DTU,有线无线 RTU,工业级无线路由器,WiFi串口服务器,NB DTU ,LORA网关等产品,感兴趣的朋友们可以从官网下载产品资料了解一下哦!