使用MODBUS协议与传感器、工控屏对接时碰到的问题

当控制器作为可编程逻辑器件用于工控系统时,其需要与各种不同的传感器对接,

同时需要与工控屏对接,以提供人机界面与用户进行交互;

对接的传感器功能多种多样,

有检测环境的温、湿度、二氧化碳、光照等的传感器。

有检测电压、电流、功率等的智能电表。

有用于智能灌溉用于检测雨量和水量的传感器。

...

控制器与MODBUS设备的连接框图

从传感器读取的数据的数据格式

不同功能的传感器,其数据类型也可能不相同的。

控制器作为MODBUS主模式从作为从模式的传感器读取到数据之后,需要考虑采用什么样的数据格式对读取到的数据进行解析、处理、判断。

大部分情况下,数据是16位的无符号,但是也有一些特别的,比如:

  1. 温度是16位的有符号数,一般温度会保留一位小数,比如从温度传感器读到的数据为65526时。‘温度并不是6552.6°C,转为16位有符号数为-10,对应温度为-1°C。
  2. 有一次,帮客户对接RS485智能电表时,从智能电表读取到的有功功率出现了6000多kw的情况。

经排查,也是因为把本该是有符号数当作无符号数处理,另外智能电表在计算有功功率时没有做下限判断或者取绝对值处理,当小于0时置为0。没有取绝对值处理,万一用户将电缆穿过电流互感器时,穿错了方向,导致读到的数据都是负数。需要采集数据方做取绝对值的处理。

  1. 环境光照的动态范围很大,最低可能到1lux,最高可能到10*9次方lux,如下:

黑夜:0.001—0.02lux;

月夜:0.02—0.3lux;

阴天室内:5—50lux;

阴天室外:50—500lux;

晴天室内:100—1000lux;

夏季中午太阳光下的照度:约为10*9次方;

因此,光照的数据格式为32位的无符号数。

  1. 有些水量传感器的数据为16位或者32位的BCD数。

以上,从传感器读取到的数据需要根据传感器的数据格式定义进行数据转换。

工控屏和传感器接到同一个RS485总线

一般情况下,控制器工作于MODBUS主模式,传感器工作于MODBUS从模式。

控制器定时按照地址轮流查询传感器,读取数据并进行格式转换处理。

而在与工控屏对接时,工控屏需要工作于MODBUS主模式,控制器工作于MODBUS从模式。

工控屏定时查询控制器的数据进行显示,同时当用户进行参数设置时,通过MODBUS的写操作命令06或16向控制器写数据。

由于一个RS485总线只允许存在一个MODBUS主设备,

当控制器需要同时对接传感器和工控屏时,需要控制器提供两个RS485总线,一个RS485总线连接传感器,另一个RS485总线连接工控屏。

选择带两个RS485接口的控制器会增加客户的成本。

因此,我对控制器做了一些改造,让工控屏也工作于MODBUS的从模式。

主要步骤为:

1) 将工控屏设置为MODBUS从模式。

2) 通过MODBUS的读命令03定时读取一段地址的数据

比如0x0000-0x0009共10个地址的数据。

读取的数据主要是用户通过屏幕的设置参数,比如温控器的启动温度,LED灯光控制的启动光照值等。

虽然,屏幕可能也有对设置数据的断电记忆功能,但是我还是利用其中一个地址的数据来判断是否被初始化,实现通过控制器对设置数据永久断电存储。

比如从屏幕读到的地址0x0000的变量值不为0xAA55,则把控制器存储的地址0x0000-0x0009的数据通过0x10命令写到屏幕,其中0x0000 地址的数值为0xAA55,实现对屏幕数据的初始化;

3) 通过MODBUS的批量写命令0x10定时将控制器的状态,从传感器读到的数据等写入到工控屏,供工控屏显示使用。

采用这种方法实现的功能,有两个弊端,

实时性

跟工控屏进行数据交换,是跟其它传感器一起轮询实现的,实时性稍微差点,特别是当接了比较多的传感器时,实时性会受比较大的影响。

我最多帮客户连接过5个传感器,将波特率设置到19200bps,超时时间按3.5个字符时间处理,大概做到了1s以内响应,也基本上不影响客户体验。

数据冲突

当屏幕和用户程序同时要控制一个变量就有问题,

因为控制器定时从屏幕读取设置值,而不知道道是否为用户的真实操作。

在控制器对变量值改写之后,又从屏幕读取到旧的设置值,控制器无法判断是否为用户通过屏幕改写,而只能将旧的设置值覆盖控制器的改写值,所以造成了冲突。

如果屏幕是主的话,只有用户操作了,才会往控制器写数据,则不会有冲突的问题。

两个RS485接品的系统框图

(0)

相关推荐

  • 大型厨房排烟道火灾预警系统设计与数据处理

    会议通知|EITRT 2019 参会注册 长按识别左侧二维码,登录报名网站(先注册网站会员,然后提交报名信息) 会议微信号 摘要 云南民族大学电气信息工程学院的研究人员胡康飞.高飞.沈勇.孔玲玲,在2 ...

  • “智慧海绵城市”(SSC)监测评价体系整体解决方案

    一.方案简介 无论是内涝防治.黑臭水体治理,还是海绵城市规划设计及建设.评估,乃至未来智慧城市的建设,都需要有全面.致密.大量的城市水文监测数据和先进模拟仿真技术作基础支撑,唯有如此,决策才有据可依, ...

  • 【学术论文】一种NB-IoT冶金节点温度采集与远程监测系统的设计

    导读: 特约主编:林荣恒 博士,北京邮电大学网络与交换技术国家重点实验室副教授,中国计算机学会服务计算专委会专委委员.长期从事云计算与大数据等的研究,研究方向集中在行业特别是工业大数据等方面,先后完成 ...

  • Modbus转MQTT网关介绍

    Modbus转MQTT网关介绍: 众所周知,在Internet中,网关是一种连接内部网与Internet上其它网的中间设备,而在物联网的体系架构中,我们知道在感知层和网络层两个不同的网络之间需要一个中 ...

  • 这20种传感器工控人你都见过吗没见过的来涨知识了(位置传感器决定位移和位置)

    (https://m.toutiao.com/is/JEFDyUL/ ) 电子技术正在迅速发展.最让我兴奋的一件事是:我们周围许多的电子设备都是在没有人值班的状态下工作的. 随着科技的发展,我们创造出 ...

  • 开放通讯协议,工控人有必要了解的

    OPC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术,更加安全.可靠.中性(与供应商无关),为制造现场到生产计划或企业资源计划( ...

  • 这20种传感器,工控人你都见过吗?没见过的来涨知识了

    电子技术正在迅速发展.最让我兴奋的一件事是:我们周围许多的电子设备都是在没有人值班的状态下工作的. 随着科技的发展,我们创造出了很多可以感知周围的事物的传感器. 传感器在监测和检测人类的活动时起着不可 ...

  • 【学术论文】基于静态二进制分析的工控协议逆向解析

    工业控制系统(Industrial Control Systems,ICS)是工业生产的基础,ICS的安全直接关系到经济.社会发展的稳定和国家安全.与其他计算机系统不同,工业控制系统中存在着大量的私有 ...

  • S7-200 SMART modbus协议科普

    Modbus协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络(例如以太网)和其他设备之间可以通信.它已经成为一-种通用工业标准.有了它,不同厂商生产的控制设备可以连成 ...

  • PLC通讯MODBUS协议的应用及编程,大神总结就是不一样

    爱上PLC 公众号 去学PLC 叙述:现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS,可想而知机器与机器通信的重要性. 一:MODBUS系统框架图 ...

  • 工控电路板维修检测方法

    通常一台设备里面有许多个电路板维修,当拿到一部有故障的电路板维修的设备时,首先要根据故障现象,判断出故障的大体部位,然后通过测量,把故障的可能部位逐步缩小,最后找到故障所在. 要找到故障所在必须通过检 ...

  • 工控上为什么多使用4~20mA信号?

    一般仪器仪表的信号电流都为4-20mA,指最小电流为4mA,最大电流为20mA. 4-20mA信号是国际统一的标准工控信号,它是应用于DDZ-III型(电动单元组合3)系列仪表中最为常见的信号类型,采 ...

  • │福利│工控PLC常用英语,工程师们请收藏

    这些天的疫情曲线一直在上升,希望像伺服定位曲线一样爬坡完成到目标速度再减速这个周期可以短一点减速时间可以短一些,医务人员现在就承担着曲线调试任务,我们的自律就是他们顺利调试成功的前提,让我们为他们加油 ...