PLC数据采集方案 求解...
- 轧钢机有个朋友是搞PLC设备的 最近接了个单子 给某个工厂机台改造 大概100多个机台吧
需要动态采集机台操作时间啊 温度啊 等等相关数据
然后管理端在电脑上可以实时查看到机台的相关数据, 报表统计等等..
他现在硬件 PLC 编程什么的都已经弄好了 过来找我让我来采集数据 然后生成报表
我是用C#的 通过 modbus协议采集.
我本来打算写个服务程序定时 扫描这100多台数据 然后采集入库 但是这样感觉数据实时性太差了. 很容易丢数据啊 而且还要出来重复的 找出变化的入库 等等..
他本来还说另外一种方案 他可以让PLC 推数据到服务器. 但是..他是一直推一直推.. 那我服务端不是还是得一直处理.. 几台还好 数量多了 再并发写数据库不是都很卡啊感觉
我只想帮他做对数据分析的相关报表... 采集数据这如何保证数据准确和实时性 实在没底
不知道行业里比较稳定的方案是什么 - bbbzzz
- forwhat嗯。
kepware采集直接入MySQL等数据库
丢几个点数据无所谓的吧
想要数据可视化可以直接自己写程序从kepware的OPC UA丢到influxdb,用grafana再可视化influxdb的数据
想效果好,也可以每个PLC外接一个小网关,网关跑Modbus采集到转换成mqtt消息推到mqtt broker上。然后用telegraf给转发到influxdb。 - konglang_616相关的上位软件都有对应的功能
欧阳大佬和豪爵太子正在赶来路上 - brook还是数据推到服务器比较好吧,100多并发真是小case,随便写就行 iOS fly ~
- 我好像是小号
- yujan有多少位号?标准做法是走OPC UA或OPC DA,实时数据库采集(比如pi或IP21)
- smartjx行业标准就是kepware
- dreamslzy论坛这么多搞工控的? iOS fly
- 我好像是小号上百台,一台赚五千,就有五百万啊?
中彩票啦iOS fly ~
- 我好像是小号同样是接私活,高下立判啊?
小号啊小号啊iOS fly ~
- fangqiankscada
- 轧钢机位号是什么..
完蛋 我都不懂 我之前就用一个开源的 modbus 库 读了 地址里的 0x 1x 3x 4x 数据 - antliu类似温度这种数据时间间隔是以秒计的吧?这种就是来一千个网也堵不了的。我去年一个应用,瞬时有几十个终端在产生共计2XXMB的数据,也没丢啥包。
- cybervsq标准做法是先把数据推过来存下来,再从里面提取生成报表,这样即使报表生成有问题也不会丢失数据,今后有其他需求功能扩展也好处理
- znm服务端强一点就好了啊,才100台机器,就算每秒钟每台发一个也没多大流量,接受数据和处理数据分开就好。
年就当一个几千人的论坛,每秒钟几十个回帖,随便一个开源的论坛框架勇10年前的硬件业搞定了 iOS fly ~ - 轧钢机重复数据也存?
- yujan有些地方可能叫点位?买实时数据库实施和维护比较省心,有成熟的方案做数据采集、压缩、报表和可视化。
当然价格要贵一些,比如我厂的4000个点位一年授权费要小一万。 - jjss521组态王。简单直接。
- awk太简单了,没啥好说的。 100多块的modbus网关。
- 轧钢机之前他是用厂家的组态软件.. 然后问题很多 主要是听说很容易丢数据.. 然后报表做的奇丑无比
我远程看过他采集数据 要开3个软件 1个厂家的组态软件 1个什么MQTT的 还有一个什么互联什么的 然后才能写mysql
反正他和我说的时候我很不理解
现在最严重的问题就是好像经常丢数据 导致数据不准 所以才跑来找我 说是让我开发个采集的 把厂家替换了 然后做报表就行 - cybervsq回复18#轧钢机
你可以不存啊,但是怎么叫重复呢,测量有误差的,比如某个温度点可能每秒的个值相差0.01度,那你说是不是重复值? 每个点量程和测量精读都不同,那你每个点都要定义多少的差异才存和不存,处理起来就复杂了。 - gain_hi通讯管理机加监控系统
- happyd8699c#开100个线程,每个线程与一个PLC通讯采集数据,采集间隔100毫秒应该可以吧,每次数据和上次数据比对,有变化就写入数据库
- 轧钢机PLC 有网络模块 以前我有帮他写过 电脑操作PLC 但是 当时数据量没那么大 就是点一下 按钮 往PLC 地址里写一个开关地址位
我主要是关心上位机软件怎么写 不知道是服务器主动去扫描 还是PLC 推数据到服务器 - richking学习了。
- 轧钢机对 好像复杂的就是这个
比如要求 温度数值 30秒定时存一次
再比如 有个开关位 有变化才存 PLC会一直推数据 比如 0 0 0 0 1 0 0 0 1 0 1 可能推了几百次 突然又推
0 0 0 0 1 0 0 0 0 0 1
我就感觉服务器收到这几百次数据都在做比较? - winloud3、7、8楼很专业。用OPC解决协议问题,直接和PLC通行,不增加硬件,然后自己开发界面,需要一个专业的程序员。
还一种用网关推给服务器的,这都是已经有现成的组态平台了才这么干,一个工控工程师能搞定。 - cybervsq回复28#轧钢机
你可以学习一下上面他们说的osisoft pi系统旋转门算法,
一般我们都让实时数据库处理这些棘手的事情,实时数据库的api取数据的时候就算这个时间点没值系统会插值一个出来给你。
你这里简单处理一股脑都定时塞mysql里面处理吧 - forwhat我和你讲你仔细看我给你指的路,肯定没有问题。仔细看。
1. 用组态和Kepware是一个思路,kepware基本上是业界最成熟的工业设备数据采集的方案之一,它可以将采集到的数据直接写到MYSQL里面。这个都是采集端从设备端拉的数据。
2. 不买Kepware的,所谓的推的方式,就是写个ARM网关的应用,在设备端将采集到的Mobus消息转换成MQTT推到MQTT Broker上。然后你在服务器端再写个应用程序,从MQTT broker上把设备消息订阅下来进入数据库。
数据入了数据库之后,想怎么做报表就怎么做。MODBUS这个东西,别想着自己写,100多台不同的设备,自己写很累的。要么用Kepware,要么买IoTGateway硬件盒子。
楼上有人说PI的应该也没有问题,应该也可以。不过PI我不熟。
组态的问题是报表太丑,多数是单机版。 - 我好像是小号
- 轧钢机多谢指点 我去看看 Kepware 好学不好学
Kepware 就是代替所谓我写的 上位机采集软件了对吧 - howlet工控过程量的数据,一直感觉非常适合时间序列数据库。纸上谈兵的想法:实时值用MQTT分发,多客户端可以并发查看;历史数据存InfluxDB;前端用Grafana展示。有这样应用的例子吗?
- happyd8699网络延时如果是局域网,延时很低的,我觉得还是要看采集的数据量大不大,这个影响执行时间
另外还有PLC端数据的变化率是不是大,如果每次采集的数据和上次都不一样,那每次都要写数据库,肯定会导致延时 - cybervsq除了Kepware,国产的亚控这些也有相应产品
- 我好像是小号回复33#轧钢机
看了看,就温度,周期,产量等简单数据。
PLC有网络模块,正常来说应该是支持socket。
对PLC来说,这个就是自定义协议。PLC跟上位机事先规定好,一组数据,比02 11 22 33 44 55 66 03 各个位代表啥意思就好了。
然后PLC(客户端)这边,用定时器,定时多久毫秒向上位机反馈数据,PLC不用管数据有没有更新,反正一秒还是多少毫秒发送一次数据就好了。
上位机这边做服务器,根据端口号就可以判断是哪台PLC发送的数据哎,上百台的没操作过,几台PLC跟电脑反正我是这样弄的iOS fly ~
- bwq1114后台跑个组态解君愁 我是熊猫酱
- Hodgen我们在车厂就是这么做的,只是不用mqtt。频率比较高,20hz左右,数据只是展示比较初级了,我们做了一些算法模型,涉及设备预测性维护,工艺稳定性判断等
- fryrice才100多台,就让客户端一直推就行了啊,控制好推送频率,服务端收集好数据,定时批量更新数据库不就行了?
- bluehub参考下OEE呢
- poweredlwwscada然后到sql
- wife811这一贴炸不少人出来
- Rorysky很简单,上个 memcache 或者 redis 就解决你的问题了
几百台 不需要 kepware,不了解架构可以 加wx聊聊,『wixu__』两个下划线 - 888837mark
- norland上个scada啊,一揽子搞定,比如Wonderware的Intouch或者WSP。
上面有提到用实时数据库PI,最好不要这样搞,实时数据库一般不直接面向就地设备,一个一个从设备上去采数据会把人搞死的,实时数据库适合从中间系统采集数据,比如DCS系统,SCADA系统等,只面向一个中间系统,用通用协议把数据采上来就完事儿了,比如OPC。并且PI很贵的,考虑成本的话会肉疼的。
上一个小的scada系统,你的要求都满足了,比如Wonderware的WSP,数据采集各种协议都支持,opc ,modbus tcp,mqtt都不在话下,有组态画面,做实时监视,还有历史库把数据存下来,也有关系库,方便做报表,他的报表功能很强大了,现在还有B/S端,能远程查看使用,对办公室用户很方便。 - fangqiankmodbus协议能主动上送?
- 我好像是小号回复48#fangqiank
socket啊 iOS fly ~