一、通信库
几乎每个工控人都曾这么臆想过:如果所有的品牌都统一一种协议,那该多好!PLC技术发展多年,不同的制造商在早期都采用了不同的通信协议,随着时间的推移,这些协议已经成为了行业标准,很难在短时间内进行统一。这个是由历史原因导致的,我们无法改变,只能改变自己。上位机开发不认PLC品牌,不认仪表品牌,只认协议。因此对于我们来说,我们并不认西门子和三菱,我们认的是S7协议和MC协议,其他品牌也是一样。上位机开发第一步需要有通信库,通信库的本质就是一个类库项目,最终编译成一个dll文件,里面包含了各种协议类,我们可以通过创建通信对象,调用其读写方法,实现与PLC之间的交互。
二、配置库
我们在使用组态软件或者触摸屏开发项目时,一般都会添加驱动,然后创建变量。C#上位机也不例外,我们需要自己去实现变量配置的过程,不同的开发人员实现变量配置的方法各不相同,一般会有以下几种方式:- 数据库存储
- ini存储
- xml文件存储
- json文件存储
- excel文件存储


三、配置+通信
目前我们已经实现了配置库和通信库,这两个是独立的。通信框架的核心在于将配置与通信进行融合。我们可以在Device类中创建一个通信对象。那这样在Device既可以获取到所有的配置信息,又可以获取到通信对象,所有的通信过程都可以实现了。我们可以在Device类中创建一个Start方法,基于多线程实现数据读取,并将断线重连、数据解析、数据处理、报警判断等逻辑均写在底层。
四、项目应用
当我们有了通信框架之后,不同的项目无非就是配置不同。
而且框架会越来越成熟,因为每个项目都会增加你的经验值,并且我们可以不断地进行优化完善。
我从2017年开始,使用这套框架开发了上百个项目,WinForm与WPF都可以使用,开发效率很高,并且非常稳定。
这样我们就把更多的精力放在界面和业务逻辑上,用更短的时间完成项目开发。

- 读取只需调用Device["变量名称"]

- 写入只需调用Device.Write("变量名称","写入值")
