签到最新话题最热话题

懒虫工控

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 992|回复: 5

[其它] 有关DCS 监控温度压力数据的一些想法

[复制链接] |关注本帖

该用户从未签到

发表于 2019-4-16 12:40:49 | 显示全部楼层 |阅读模式
很幸运认识到本论坛,让国内DCS工作者有一个学习的平台。
我也某企业DCS的工作人员,同样也是逆向爱好者,我们企业使用的是CENTUM VP 系统,工作这些年发现这个系统的报警系统是有问题的(不知道别的企业是不是这样),首先 高 低 温度 液位报警,这是一个很正常又很好的事情,可以提醒DCS操作人员哪里的问题不用一直盯着屏幕,但就是我们企业的报警,
不光是高 低 温度 液位报警,阀位限定等一些没必要报警的值频繁报警,这让DCS操作人员已不管报警声音,有些干脆关闭报警声,使这工作时不能即使发现问题,后果可想而知。(给我们制作DCS系统公司说 无法改变现状)

因为没有学习DCS的 GUI的制作,而且我们企业已有现成的分布式控制系统,我只要改进一些东西就好。
初步思想改进两个地方,1,报警,只报警高低 液位、温度。 2,自己分析温度和液位 是不是画直线,也就是传过来的值不变,有可能是硬件出了故障。
所以我只要逆出来我需要的的数据就好,同时HOOK住报警。

通过几天的逆向分析
在电脑屏幕显示的数据(温度、压力点),通过最底层组件进程实现。

数据是以 float类型也就是单精度浮点数存储。

具体实现方式:
这是刚启动CENTUM VP 启动的样子,
后启动一个画面后:

首先进程调用 CreateThread来创建线程,以后使用mfc90 模块来实现界面显示。
抽拉数据过程:使用内部模块SendRead发送数据,分配内存(这里的内存存储这需要显示在屏幕所要抽拉的标志)
360截图20190416121547706.jpg
从2B BE 00 56这里开始是发送数据头,这里是一个时间,高位 00 56始终不变,低位 每秒加1,到FF FF重置。
我把数据往上拉: 360截图20190416121951345.jpg
看到了显示数据的String字符串,以后使用WriteFile函数把这段数据写入一个驱动文件。
228b5e3eda744f1f5db6da8ea021348.jpg
格式:WriteFile(BKTDI,DataAddress,Size,SizeWritte,异步操作句柄)
因为这里是驱动文件所以比较谨慎,所以还没有分析驱动文件的内部实现。
再来看看写入驱动文件后;调用了ReadFile,读文件
格式:ReadFile(BKTDI,这里存储这文件的固定内存偏移为9910,Size,SizeWritten,异步操作句柄).
这时发现 9910内存地址存储这需要显示的数值,不过是以大端序保存的(网络传输格式),x86 是以小端序存储的。
所以他分配了一块内存调用memCpy函数。
memcpy(Address,9910,Size)
使用htonl 函数把大端序转换为小端序。
htonl(Address)。这时Address就是屏幕所要显示的数据。
上面的步骤是电脑显示界面获取数据过程,如果我要抽拉全部(包括没有显示在电脑屏幕的数据),就得模拟他获取数据的过程。
难点就是驱动程序 BKTDI,实现过程,怎样交互的。这样得到了想要的数据,然后加以分析就可以判断数据是否假数据。(报警还没有搞 暂时不知道在哪个模块组件实现)。

这里希望上层制作DCS的大牛可以给我些提示与思路。

评分

参与人数 1虫币 +5 收起 理由
懒虫工控 + 5 发起议题!

查看全部评分

回复

使用道具 举报

签到天数: 22 天

连续签到: 1 天

[LV.4]虫坛居民I

发表于 2019-4-22 13:07:16 | 显示全部楼层
不知道你这是想做什么功能?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2019-4-25 13:00:04 | 显示全部楼层
更改报警系统(我们厂的报警有问题),增加数据智能分析。
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]虫坛新人I

发表于 2019-5-20 16:35:30 | 显示全部楼层
谢谢楼主分享
[发帖际遇]: 拔丝苹果 发帖时在路边捡到 5 虫币,偷偷放进了口袋. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]虫坛新人I

发表于 2019-7-5 10:52:20 | 显示全部楼层
没看完哈哈哈
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]虫坛新人I

发表于 2019-10-10 09:41:47 | 显示全部楼层
里希望上层制作DCS的大牛可以给我些提示与思路
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

回帖奖励

[详情]

  • * 每天自己主题被回复3次可获得额外3虫币奖励。
  • * 每天回复他人主题5次可获得额外10虫币的奖励。
  • * 奖励每天都可领取,一定要多参与论坛讨论哦。
  • * 同一主题的重复回复不计。
  • 
    关闭

    站长推荐上一条 /1 下一条

    QQ|手机版|小黑屋|懒虫工控 ( 陕ICP备15016442号 )|网站地图  

    GMT+8, 2019-12-15 16:16 , Processed in 0.278876 second(s), 30 queries .

    Powered by 懒虫工控

    © 2016-2020 LCGK

    快速回复 返回顶部 返回列表