自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

工控老兵的专栏

从事工控领域研发多年对组态软件、HART-DDL解析、各种通信协议都有涉猎,目前从事设备软件、SECS/GEM通信的研发,欢迎交流。

  • 博客(20)
  • 收藏
  • 关注

原创 三款IC设备软件平台简单对比

一. 套韩国软件平台韩国人的设备软件平台,20多年前的产品了,还是Windows 2000的风格,平台本身确实比较灵活能够适应各种不同厂商需求,但是结构臃肿,不能分布式部署(理论上可以,但是实际部署无法正常使用,厂商又没有办法解决),基于C、C#语言开发、基于管道通信方式,配置繁琐、问题定位困难等等,就不多说了,放几张图大家欣赏一下:二. 一套高仿韩国软件的平台按照韩国人软件平台的架构,照猫画虎的仿照开发,并“参考“了很多韩国平台的源码,后台采用C、C++开发,前端采用C#开发,由于抄袭人员

2021-03-07 16:49:12 1167 8

原创 SDC625调试

2019年的时候应曾经的朋友邀请帮助调试了SDC625(业内的人自然懂得就不多介绍了)的源码,目的就是找出DDL的解析过程,以便开发一款HART手操器APP。当时的调试过程很多已经淡忘了,简单写一点东西做一个记录。1.SDC625的源码在官网的售价高达5万美金;2.SDC625的源码是VS2005开发的,不过编译似乎存在各种问题,废了好大劲才把它转换到了VS2017下完美编译运行;3.开始调试前要先连接上一个HART设备,确认连接正常,并可以读取到相关的参数信息;4.经调试发现串口通信是通过

2021-01-10 22:47:25 1271 2

原创 关于RapidSecs的Demo几点说明

近期经过大家的试用,发现由于大家用的编译器与提供的Demo编译器版本不匹配,会导致Demo无法调试的问题出现,因此希望大家索要Demo时最好注明自己的编译器版本,否则就只能运行而无法调试了! 目前Demo的编译器版本主要有:VS2010、VS2015、VS2017、VS2019。 Demo只是一个演示程序,它的作用时告诉用户RapidSecs能够支持哪些功能,以及相应的接口如何调用,但它本身并不是一个完胜的设备端Gem程序,要想实现完整的设备端Gem功能还是需要进行二次开发的! 由于工作很忙对大家De

2021-01-10 17:25:03 1883 92

原创 后继系列文章播报

本人目前在从事设备软件的研发,确实很忙所以文章发布的比较缓慢,GEM300也正在研发当中,随着研发过程的推进文章将陆续更新,在这里做一下后继文章的播报,请广大博友持续关注,敬请期待:GEM300的研发包括: E40支持; E94支持; E87支持; E90支持; E116支持; E84支持; 设备软件的研发: 框架搭建; 主引擎开发; GUI开发; 调度程序开发; 各类驱动开发; 实际应用

2020-12-04 09:19:52 889 3

原创 GEM300标准的自动跑片演示

自动跑片的实现其实就是把上一章中的手动跑片的命令连接起来,同样动画中左边的部分是设备软件,右边的是测试工具软件,相当于主机端的EAP软件,当右边的测试工具收到特定的命令时自动进行回复(实际的EAP软件也是这样的),这样就完成了自动跑片过程,具体详见下面动画:...

2020-10-11 16:19:45 2134 3

原创 GEM300标准的手动跑片演示

最近比较忙,有一段时间没有更新博客了,发一段GEM300标准的手动跑片过程(既然此处是手动,那么当然会有自动了),让初涉这个行业的朋友一睹为快,录了一段动画大家看一下。 动画中左边的部分是设备软件,右边的是测试工具软件,相当于主机端的EAP软件,发送指令的过程大致如下:S1F13,建立连接; S2F41,切换到Remote模式; S3F17 ,收到获取Port1的Carrier ID事件后,验证CarrierID成功; S3F17,收到获取Port1的Map结果事件后,验证Map R...

2020-09-22 21:08:26 4194 9

原创 如何安装一个禁止在VM中安装的安装包(MSI)

工作中用到一个第三方的安装包,想在VM中安装使用,但是当运行安装包的时候会出现如下的提示: 不让在VM中安装,但是我又确实想用,怎么办? 分析一下:一个安装程序的作用是什么?无外乎就是向系统中指定位置拷贝指定的可执行程序、DLL、配置文件,还有向注册表写入相关注册信息供系统或程序访问等等,那么只要我们知道了安装包都具体做了哪些工作不就行了?其实很多安装程序的绿色版就是这么制作出来的。那么下一步的目标就应该明确了! 找出正常情况下的安装程序都向系统写入了哪些? 这个就需要借助一些工..

2020-09-03 21:34:02 303

原创 通过TCP调试Modbus RTU

案例需求:物理设备是一个Modubs RTU协议的PLC; 但是由于距离比较远需要通过一个TCP透传的网关进行转换,RJ45->RS232。那么对于这种需求在初期没有实际设备的时候,如何进行开发调试?需要准备如下的辅助调试软件:Configure Virtual Serial Port Driver,用来生成虚拟串口对; ModSim32模拟器,用来模拟Modbus RTU设备; TCP-Com,用于TCP到Com口的映射转换。下面简要介绍各个工具的使用方法:Configure

2020-08-04 10:34:30 3146 6

原创 组态软件双屏显示,通过VM也可以实现测试!

以前研发的组态软件给客户实现了双屏效果,近期客户在使用时出现了首屏页脚不显示的问题,见下图:其实这个问题只要能重现是很容易解决的,但是现在有如下问题:这个版本当时是在XP下开发的,目前我没有XP的系统环境了,但是我有虚拟机的系统环境,如果为了这个单独装一个XP系统在配置上开发环境(VS2003)工作量就有点大了,花费的时间也很多,那么有没有什么好的解决方案?我在想如果能够在虚拟机(VM)下实现双屏(我用的是屏幕扩展的方式)问题不就都解决了?于是上网查找一番,发现强大的VM确实可以实现,很多

2020-07-13 20:34:05 1513

原创 六. SECS/GEM封装库RapidSecs开发手记-扩展库开发-1

上一章结尾时我提到了在以上DEMO的基础上继续完善下去就可以实现GEM的全部功能,那么本章的扩展库就是真正的去实现GEM功能,不过并不是全部,而是GEM200部分,因为GEM300部分更加复杂涉及的内容太多,以后有机会再考虑这部分内容的实现。此外,扩展库的开发采用了C#,而不是基础库的C++。下面让我们开始吧……1. 功能设计GEM 标准定义了从用户所能看到的设备功能,以及实现这些功能所需要用到的哪些 SECS-II 消息。每个通用设备功能都是按标准规定的顺序收/发组SECS-II 消息来实现的。

2020-07-11 16:04:18 2700 5

原创 一个监控PLC的Android应用的开发过程-2

2.5 交互对话框2.5.1 DO交互对话框对于DO的操作需求就是点击List中的Item,弹出交互对话框,由用户来选择“On/Off”?并最终写入到底层的PLC设备之中,并根据结果更新List。效果如下:2.5.2 AO交互对话框由于对于AO的操作需求有2种,分别是趋势查看需求和值设定需求,因此点击List的Item后需要先由用户选择要进行哪种操作?也就是与DO对比要增加一个操作选择对话框。在用户选择了操作类型后,弹出具体的操作对话框。对于AO的值设定操作需求就是在交互对话框中

2020-06-27 10:38:37 750

原创 五. SECS/GEM封装库RapidSecs开发手记-基础库DEMO开发-2

4.4 状态机状态机的数据结构如下:typedef struct _comm_fsm{ COMM_STATE state; COMM_STATE state_host_init_connect; COMM_STATE state_eq_init_connect; deque<COMM_EVENT> m_comm_ev_queue; HANDLE m_comm_ev_handle; HANDLE m_comm_estab_comm_timer; unsigned int

2020-05-26 21:56:09 2701 3

原创 五. SECS/GEM封装库RapidSecs开发手记-基础库DEMO开发-1

1.库结构RapidSecs的C++基础库包括: 文件 描述 rapid_secs.h 头文件 RapidSecs.dll 动态库 RapidSecs.lib 动态库对应的Lib 2.头文件主要是定义了一些基本的数据结构和接口函数供用户调用,接口功能在上一章的博文中已经进行了介绍,这里就不再重复了。头文件的代码如下:3.Demo

2020-05-16 22:45:21 2974 2

原创 四. SECS/GEM封装库RapidSecs开发手记-基础库开发-2

5.命名空间5.1 空间结构5.2 HSMS此命名空间中的类主要处理和HSMS协议相关的操作。5.2.1 类HsmsClient从Socket类派生,HSMS的被动模式使用的类。主要接口如下: 主要接口 接口功能 Accept 接受连接 Connect 建立连接 Send 发送数据 OnRecv

2020-05-08 18:21:24 2967 1

原创 一个监控PLC的Android应用的开发过程-1

本来想5.1期间继续写SECS/GEM封装库的系列文章,但是临时要帮朋友忙开发一个Android App,由于以前也从来没有开发过APP,虽然功能非常简单,但是过程实在是很艰难,特此记录一下。不求给各位博友任何指引(也没资格),只求给自己的第一次APP之旅做个记录,并如果能够给同是APP初次开发者的博友一点启示就更好了。App的功能需求很简单,大致如下:平台需求仅支持Android即可;...

2020-05-05 23:28:40 1051

原创 四. SECS/GEM封装库RapidSecs开发手记-基础库开发-1

如果已经将上面介绍的SECS/GEM开发要点掌握了,那么我们就可以进入“RapidSecs基础库”的实际开发了。首先明确一下基础库的目标:支持E5(SECSII)、E37(HSMS),开发语言为C++。这两个协议也是后继E30、E40、E90等等一系列协议的基础。1. 总体设计1.1 模块划分 首先,基础库的功能要如何划分?从对协议的支持来看要支持的协议是E5...

2020-04-24 21:30:27 4302 2

原创 三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-2

5. SECS-II通信标准 SECS-II 标准定义了设备和主机之前发送的消息所表达的含义。所有的消息按照其行为分类,称为Stream,每个Stream又包括具体的消息,称为Function。标准还定义了消息的结构,消息由数据项和数据项序列构成。SECS-II还规定了事务协议,用于管理消息的交换、分块等。5.1 消息分类 标准把所有的消息按照行为分为各种Str...

2020-04-12 10:33:34 12042 5

原创 三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-1

此部分主要来自于网络内容的收集整理及自己的一点体会,都是一些SECS/GEM开发的相关知识点,可以帮助博友们有针对性的去学习。1. FA(Factory Automation)的目的生产费用减少 通过自动化减少人力 提高生产力 通过中央控制增加产量 减少操作人员的失误 通过对设备状态的把握预测和预防错误 设备管理的最大化 通过检测设备状态计划性的分...

2020-04-10 21:57:39 11502 6

原创 二. SECS/GEM封装库RapidSecs开发手记-应用效果

之所以把应用效果放到前面,主要还是想让广大博友首先确定这是否是你想要了解的?前面提到了“RapidSecs”分为基础库和扩展库两部分,其中基础库既可以用于开发主机端(Host)也可以用于开发设备端(Equipment)。而扩展库主要是为设备端开发的,测试和应用目前都仅限于设备端。基础库-主机端:基础库部分的开发起源于一个国家项目,为一家封装测试厂开发一套EAP软件,其功能就是将F...

2020-04-09 14:45:56 6584 107

原创 一. SECS/GEM封装库RapidSecs开发手记-前言

300mm晶圆是目前IC制造的主流,国际半导体装备和材料协会(SEMI)及全球半导体制造厂、设备供应商共同起草并制定了一系列300mm相关的自动化软件通信标准,规定了生产管理系统(MES/CIM)与IC装备之间的通信协议。 目前,与通信相关的SEMI软件标准有如下3类:SECS/GEM标准:传统的主机设备通信标准,定义了通信的物理层(RS232, TCP/IP)、消息格...

2020-04-08 20:28:26 4970 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除