驱动框架

常规工控软件中,驱动为最底层的逻辑,与硬件直接进行通信。各家设计不同,我只阐述我们软件平台的驱动框架,也许可给读者一点灵感。


一般情况下,这三种通信方式足够了。无论是对于CVD镀膜设备,还是匀胶显影等机台,MFC可能走串口,机器人可能走网口,IO模块可能走赫优讯板卡,台达板卡,倍福板卡等等,但都是走PCI卡槽。

通信类型举例

串口(ModBus RTU):

  1. 根据ModBus RTU协议构建发送命令。
  2. 根据ModBus RTU协议解析返回命令。
  3. 构建函数进行CRC计算和校验。
  4. 根据协议中结束符来对命令进行操作和检查。

如:从机地址为2,保持寄存器从1开始,读取连续三个寄存器的内容。
发:

收:

网口(自定义协议):
自定义协议的难易程度不好说,完全根据硬件厂家的定义来说。有的厂家写的通信协议看起来晦涩难懂,有的厂家则是通俗好理解。
网口的设计与串口相同

  1. 根据协议构建发送命令。
  2. 根据协议解析返回命令。
  3. 构建函数进行CRC计算和校验。
  4. 根据协议中结束符来对命令进行操作和检查。

如:读取某Load Port的版本信息
发:GVER+回车换行
收:GVER:info+回车换行(其中info为版本信息,即用户想要获取的部分)

PCI
对于PCI主站卡来说,一般情况下,厂家都会有封装好的函数对主站卡进行设置,读取和写入。设计者只需要根据其函数说明和Demo来进行设计开发即可。其大概思路:

  1. 创建一个线程来对主站卡的输入模块进行轮询获取。
  2. 创建一个线程来对主站卡的输出模块的输入部分进行轮询获取。
  3. 创建一个线程来相应上位机写操作的要求,并对输出模块进行写入操作。
  4. 从主站卡读取的信息存放于缓存区,上位机读取时直接从缓存区读。
  5. 上位机进行写操作时,即刻调用写函数,以保证写的及时性。
  6. 线程的轮询时间要小于主站卡对从站信号的采集周期。
  7. 读写要有互斥锁。(其实串口和网口也要有读写锁,只不过可以放到更上一层的逻辑中,比较灵活,看个人设计)

Windows下的串口与网口主要通信函数

串口:

网口

工控软件——驱动框架相关推荐

  1. 驱动提取软件_深入分析施耐德工控软件代码执行漏洞

    更多全球网络安全资讯尽在邑安全 简介 在本文中,我们将为读者详细介绍Claroty Research团队的Amir Preminger和Sharon Brizinov是如何组合利用两个漏洞,来触发施耐 ...

  2. 设置中转,解决昆仑通态工控软件电脑版无驱动的问题

    有一个工程需要利用昆仑通态工控软件(电脑版)监控两个西门子PLC的信息,这两个PLC都是比较新的系列,一个为S7-200SMART,另一个为S7-1200.遗憾的是,这个工控软件不支持这两种PLC,原 ...

  3. 工控软件控制系统设计

    概述 工控软件一般指的是工业自动化软件.数据采集软件.工控软件更接近于游戏软件,与办公软件有着根本区别. 工控软件的特点是:环境不可靠.无法简单地按MCV划分.总是需要根据硬件进行调整.不更新.不维护 ...

  4. 工控软件IFIX加入WEB显示图表

    工控软件IFIX如何加入WEB并显示图表 1.效果展示 2.编写HTML测试代码 其中echarts.js需要自行下载 https://cdn.staticfile.org/echarts/4.7.0 ...

  5. 工控软件图形界面-控件实现(圆形仪表控件三)(zz)

    介绍 在工业控制系统开发过程中,图形显示方面占有着很重要的作用.比起很多专用的组态软件,他们有着强大的在图形系统,能够组态出来非常漂亮的系统.现在的很多的工业图形开发包都需要支付费用,很多漂亮的控件比 ...

  6. 各类工控软件图库(组态王,威纶通,西门子,昆仑通泰等通用

    各类工控软件图库(组态王,威纶通,西门子,昆仑通泰等通用),全部加工成png格式,没有背景,可直接应用,免除扣图痛苦. ID:6944661579082782

  7. 工控软件虚拟机 portal v15 v16 v17 prof版合一

    接下来会做一些虚拟机,基于Win10 ltsc 2019,这个版本对现在最新版的工控软件兼容性最好 lzma2压缩,不要用360压缩打开 为了使用便利就不搞链接克隆了,我个人做虚拟机是都用链接克隆的 ...

  8. 工控软件/PLC的信息远传的简单解决方案

    工控软件/PLC的信息远传的简单解决方案 针对现在的物联网趋势,很多小伙伴想迈出工控信息远传这一步,但是又会出于对软件行业的陌生而望而却步.本人有10年工控经验以及物联网平台开发.对接经验,这里分享一 ...

  9. 实现一个模拟工控软件

    由于一般人对工业控制环境比较陌生,操作工控软件相对不易.一款好的工控软件能够减少工人的学习时间和误操作:在工业环境中,为减少实验成本,方便调试:公司现有的软件ui实在太落后,按钮都是单调的mfc bu ...

最新文章

  1. 通过手动创建统计信息优化sql查询性能案例
  2. 数据集制作_轻松学Pytorch自定义数据集制作与使用
  3. 消息推送与同步协议的思考
  4. Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
  5. android 在什么情况下会主动gc_Python 什么情况下会生成 pyc 文件?
  6. WEB效能测试和负载测试部分截图
  7. java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
  8. 编程课课程感想和建议_最佳在线编程课程
  9. GridView, DataGrid 中,DataFormatString语法汇总
  10. c语言做线性代数第六版答案,编程与线性代数
  11. java实现录屏_javacv实现桌面端录屏
  12. 战神引擎独立端全套搭建教程
  13. Mentor Graphics IPC-7351 LP Viewer 10.5使用说明
  14. 抖音直播监测——2分钟了解知音数据小程序
  15. KubeFATE: 用云原生技术赋能联邦学习(一)
  16. 怎样判断三角形的顶点是逆时针方向还是顺时针方向
  17. 学习JAVA的随性笔记-权限修饰符
  18. 微型计算机标致寄存器实验报告,微型计算机原理与接口技术实验报告册.doc
  19. 【debug】Python pandas dataframe.groupby().sum不显示结果,只显示groupby中的条件列
  20. 大宋王朝三百年(1) 王泽宾

热门文章

  1. python爬虫框架论文开题报告范文_毕业论文开题报告范文5篇
  2. 【毕业设计/Matlab系列】一维加噪信号的小波去噪matlab实现(不采用matlab工具箱)
  3. STM32F103ZET6+RA8875+Emwin显示和触摸移植
  4. [MFC] 几种子控件半透明效果的实现办法
  5. python语言编写一个生成九宫格图片的代码_Python 生成你的朋友圈九宫格图片
  6. 多商户商城系统功能拆解41讲-平台端应用-客服设置
  7. 线下失守、高端难攻,vivo 2020开年太难
  8. java爬虫面试题_Java 网络爬虫基础知识入门解析
  9. PayPal(贝宝) Webhooks使用
  10. iOS开发应用上架苹果相关的审核规则