现在的工业自动化领域,虽然组态软件因简单易用、价格合理而被广泛部署到各行各业的控制系统上。但对于一部分应用场景来说,自己开发上位机应用程序依然占有不小的市场,诸如:
1、标准化设备厂商,大量的软件授权也是一笔不菲的软件成本费用;
2、某一行业的系统提供商,每个控制系统差异不大,容易标准化;
3、上位机要求高,常规的组态软件无法满足;
4、特有的算法或者模型需要技术保密;
5、其它小规模、低成本项目;
组态软件之所以盛行最主要还是因为其可以快速实现控制需求,丰富的图库、驱动,集成的报警、归档功能,简单的配置即可实现数据可视化,这些无论是C#、VB或者DELPHI都无法比拟的。虽然我们采用C#的开发速度和组态软件无法相比,但是我们可以通过一系列的方法最大限度的提高使用C#开发上位机的效率,比如封装驱动,开发自定义控件来提高程序的复用性等。
HwLib.Automation就是这样的一套使用C#开发的工业控制程序框架。它的目标是帮助客户快速实现需求,节省之前耗费在数据采集、用户管理、画面规划等基础工作上面的时间。使客户能够将精力集中在业务需求上面,最大化的提高工程交付质量和速度。比如通过简单的配置就可以实现和PLC的数据交互。
图1 HwLib.Automation
HwLib.Automation采用工业标准设计,源码级交付。到目前为止,HwLib.Automation已经经受了同时和16台PLC交互数据、2200余外部变量的项目考验。
HwLib.Automation具有下列功能与特点。
1、集成画面管理;
2、集成用户管理;
3、操作权限管理;
4、集成S7驱动,无需编写一行代码即可实现和西门子系列PLC通信;
5、符合工业控制需求的自定义控件;
6、扩展的窗体类,使用HwLib控件无需编写一行代码即可和PLC进行数据交互;
7、预留扩展接口,可以基于HwLib.Automation进一步丰富功能;
8、框架涉及了委托、反射、泛型等经典C#技术,有助于进一步提升编程技能;
9、经过实际项目考验,稳定、可靠,符合工业标准;
10、原创的源码级交付,没有任何版权风险,可以放心的应用到工程项目中;
框架中包含了常用的一些自定义控件,比如按钮、指示灯、仪表盘等。所有的控件均支持数据双向绑定,也就是说只要我们在控件的属性中指定了驱动顺序号以及变量名称,框架会按照指定的周期自动更新数据。在用户操作时,比如从I/O域中输入新的数值或者按下按钮等操作框架会自动将新值写入到PLC中,这些过程全部由框架完成,无需开发人员编写一行代码。
图2 框架内置控件I/O域
HwLib.Automation集成了用户权限管理,权限等级为从0-9,0表示最低权限,9表示最高权限。如果当前登录的用户权限大于控件的访问级要求则可以操作该控件,反之则禁止操作。
图3 按钮控件的权限展示
在上图中,自定义按钮控件的访问级为2,那么只有当已登录用户的权限大于2才可以点击该按钮,反之则该按钮为禁用状态。
框架内置用户管理功能,支持新建、修改和删除用户信息。便于进行用户权限管理。
图4 用户权限管理
框架内置了主流通信协议(目前暂时只有西门子的S7协议,支持和S7-200Smart/300/400/1200/1500通信)。通过简单配置即可完成和PLC等设备的数据交互。
图5 驱动管理
我们把这里创建的变量名称填写到控件的属性“TagName”中即可实现数据的双向绑定,这些过程无需我们的开发人员编写一行代码。
通过开放式接口我们可以将网络上优秀的开源组件改造成符合HwLib.Automation要求的组件,实现数据双向绑定,提高开发效率以及项目交付速度与质量(下图来自于网络)。
演示视频:
https://www.ixigua.com/i6743851163612873223/