一.前言 所有设备的信息配置,主要就三大点:端口管理.控制器管理.探测器管理,整个硬件系统的架构是有多个不同的通信端口(主要是串口和网络),每个通信端口下面挂着多个控制器(每个控制器都有唯一的地址,从1-255),每个控制器下面挂着多个探测器(每个探测器都有唯一的地址,从1-255),这样整个系统最多能够接入的设备数量可以到255*255=65535个,而大部分的modbus系统都是255个,这样就很巧妙的突破了255个的数量限制,一个控制器下面的多个探测器数据,统一由控制器管理和上报,而上位机…
一.前言 地图管理的主要功能是将系统中的地图文件做添加和删除,支持常见的jpg.png.bmp等格式图片,图片分辨率建议小于1080P,最好是和目标客户端电脑分辨率一致,这样在拉伸缩放的时候会比较清晰.图片建议使用鸟瞰图,有3D立体感,类似于那些卖房子售楼部的3D模型,不懂的人还以为是什么高级的技术呢,其实就是一张图片.在做很多需要地图模块的系统的过程中,总结出了几个经验,如下: 第一个是如何快速的加载图片,记得以前有个Qt大神jason写过类似的文章,看过之后才发现,原来和我的做法完全一致,核…
一.前言 记录清理功能,在数据量很小的情况下,用不上,如果数据量大了的话,长年累月存储的,那就显得极其重要了,好比视频监控中的NVR存储的视频一样,一般来说存储个60天,那超过60天怎办呢,擦除早期的数据用来存储最近的数据即可.在这个气体安全管理系统中,数据量长年累月也是很大的,一般来说一个节点默认每分钟存储一个数据,如果100个节点(这个应该是保守的数量,据说应用的好多个现场有500个左右的节点,至于如何突破的modbus255个节点的限制,后面的文章会单独讲解),一天下来就是1006024=…
一.前言 数据导出一般指导出到excel表格,可能有部分用户还需要导出到pdf,因为pdf基本上不可编辑,防止用户重新编辑导出的数据,excel可能绝大部分用过电脑的人都知道,广为流行,主要就是微软的office软件和金山的wps软件,所以只要涉及到导出数据的软件,基本上默认都是导出到excel,以便领导或者其他非软件专业人士打开看数据,或者二次分析数据,Qt中没有数据导出到excel相关的类,有一些第三方开源的比如qtxlsx.libxls等,很多初学者首先选择的是用qaxobject来调用e…
一.前言 通信协议解析是整个系统的核心灵魂,绝大部分人做软硬件通信开发,第一步估计就是写demo将协议解析好,然后再慢慢写整个界面和操作流程等,在工业控制领域,modbus协议应用还是非常广泛的,这个系统用的也是modbus协议,采用此协议可以方便的用一些第三方的组态软件接入,兼容性更强,modbus只是个协议规约标准,至于使用串口还是网络还是其他,都由厂家自行具体实现,一般正常来说,使用modbus协议的系统支持255个设备在同一个网络上进行通信,而且大部分都会采用485半双工的机制,挨个轮询…
一.前言 曲线监控模块用的很少,主要就是用来观察某个设备的实时采集的数据和历史采集的数据,可以回放数据,在右侧可以选择对应的通信端口和控制器,然后选择指定的探测器进行观察,从选择的时候开始计时,每个数据都对应一个数据点,至于采集间隔,这个在端口管理中设定的,一般来说都是1秒钟采集一次. 显示曲线图表控件,个人强烈推荐开源的qcustomplot或者qwt,Qt5.7以后集成了qchart模块也有曲线控件,个人觉得用法还是不够友好,而且很多人反映大数据量基本上歇菜,只能做一些小数据量的展示,我看过…
一.前言 探测器在整个系统中是最核心的关键的硬件,终端节点硬件,安装有探测芯片装置,负责探测前端对应气体浓度,并记录值,等待控制器轮训数据回复,控制器信息表也是字段最多的,要存储位号.控制器名称.探测器名称.寄存器地址.型号.气体种类.气体符号.上限值.下限值.最大值.消零.量程.状态.声音.地图.存储.小数点.报警延时.报警类型.X坐标.Y坐标. 各个字段的含义如下: 编 号:节点的编号,从1开始. 位 号:探测器的位置编号,用于唯一标识一个探测器. 控 制 器:对应挂载的主设备名称. 探 测…
一.前言 控制器管理,主要就是对控制器进行添加删除和修改,其中包括编号.端口名称.控制器名称.控制器地址.控制器型号.探测器数量这几个字段,端口名称表示当前控制器所属哪个端口,一个系统中可以有好多个端口,一个端口可以对应多个控制器,一个控制器可以接多个探测器.探测器数量这个参数主要是方便下发数据的时候,提前知道要取多少个探测器的数据,组成对应的数据包下发下去,可以规避一下无效的数据,比如下面是16个探测器,就没有必要去取255个探测器的数据,取到了也没有意义,毕竟其余的全部是0,而且还增加了总线…
自从把Qt样式表葵花宝典这个pdf文件看完以后,将所有的qss内容都轮了一遍,还写了个皮肤生成器工具,https://blog.csdn.net/feiyangqingyun/article/details/56875924自从爱上了Qt的样式,基本上任何界面,用qss+qpainter都能搞定.自从把qpainter全部研究了一遍以后,写了个自定义控件大全,https://blog.csdn.net/feiyangqingyun/article/details/53443488以前没有写过顶部…
一.前言 作为一个管理系统,数据库肯定是不可或缺的,Qt内置的sqlite数据库已经是够用的,而且本人亲测数据量能支持亿级别,而不是像网上很多人说的千万级别,我模拟过一亿多条数据,依然能够很好的查询,而且还是在一张表哦,不过单文件好大,2G多,性能上相对于几百万条,肯定要差,但是这种亿级别的情况还是很少的啦,也是建议存储到千万级别就可以的,超过的就做自动清理早期数据. 为了兼容性和拓展性,本系统除了支持默认的sqlite数据库以外,还支持mysql数据库,至于sql server数据库,Post…