本文讲解4.2版jxTMS的数据源,整个系列的文章请查看:docker版jxTMS使用指南:4.2版升级内容
docker版本的使用,请参考docker版jxTMS使用指南
4.0版jxTMS的说明,请查看:4.0版升级内容
4.0版jxTMS主要是通过MQTT进行采集。这种采集模式是前端主动的、定时的向接口机进行推送,但对于modbus这样的前端设备来说,就需要接口机主动访问前端设备来获取数据了。即接口机主动从前端设备拉取数据。
考虑到modbus这样的设备,数据是分散在多个地址的各寄存器中的,想获取到完整的业务数据,需要在一个轮询周期内依次访问多个数据点。但大部分的modbus设备,由于性能、资源有限,其过载容量非常小,所以还不能任由接口机全速访问,而应按一定的时间间隔来逐次访问各数据点。
modbus设备的数据处理性能一般都较为有限,所以其数据大多都表示为整数,考虑到精度,其一般都会加以放大【如放大十倍】,所以接收到数据后,要进行相应的转换【如除十】,以得到实际的数据。
最后,非常重要的一点,数据采集大部分情况下都只是系统的一个环节,考虑到真实设备测试环境不方便调试,所以为便于采集到数据后的系统处理的编写、调试,还需要插入一个转换点,可以按需切换到模拟数据发生器,这就可以便于我们脱离现场硬件环境来编写、调试业务系统了,只需在最后合拢时切换到现场数据拉取接口即可。
综上,笔者编写了数据源模块来实现上述需求。数据源模块主要用于拉取数据,其主要功能是:
1、添加需要拉取的数据点,指定拉取周期以及一个拉取周期内拉取动作的间隔
数据源在每个拉取周期对所有数据点逐次拉取一次,各数据点的拉取间隔指定的拉取间隔。
2、每个数据点,需要指定如下内容:
-
设备名,该数据点的数据归属于哪个设备,一个数据源可以同时拉取多个设备的数据
-
变量名,该数据点所对应的变量
-
相应的拉取参数,如modbus所需要的从机地址、寄存器号、读取功能码、读取数量等。在拉取数据时,数据源将这些参数递交给拉取函数以拉取数据
-
模拟数据的产生式定义,当指定数据源工作于TEST模式时,数据源在拉取数据时并不真实调用拉取函数来拉取数据,而是调用该产生式来自动生成模拟数据
-
数据校验的判断式定义,如果给定了判断式定义,数据源在拉取到数据后【实际拉取或模拟拉取】,将用该判断式对数据进行校验
3、数据源的拉取流程
-
继承后要实现数据接收函数,数据源将调用该函数来拉取各数据点的数据
-
添加数据点的拉取参数,包括:数据点的设备名、所拉取数据点的变量名、拉取该数据点所需要的参数,如modbus的从站地址、读取功能码、寄存器号、寄存器数量等
-
同一个设备的数据点添加完毕后,需要添加一个设备数据拉取完毕通知,同时指定该设备的数据接收点,数据源据此将拉取到的该设备的所有数据打包后通过该数据接收点发送给设备
-
设置拉取模式,并指定拉取周期、拉取间隔等
-
按指定的拉取周期以拉取间隔来逐次拉取各数据点【实际拉取或模拟拉取】
-
对拉取到的数据进行拉取后处理
-
对处理后的数据做校验,如果校验未通过则丢弃该数据,未定义校验式则忽略
-
将校验后的数据保存给指定设备名的指定变量
-
设备数据拉取完毕,则将整个设备的所有数据提交
-
数据源对接收到的数据进行解析,将数据解析为(设备名、数据)的列表
-
数据源对解析后的数据列表进行分发,即依次根据设备名查找到其注册的数据接收函数,然后将数据投递给该函数
参考资料:
jxTMS设计思想
jxTMS编程手册
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
如何用jxTMS开发一个功能
下面的系列文章讲述了jxTMS的一些基本开发能力:文章来源:https://www.toymoban.com/news/detail-521034.html
jxTMS的HelloWorld文章来源地址https://www.toymoban.com/news/detail-521034.html
到了这里,关于docker版jxTMS使用指南:数据源简述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!