收藏本站    |    网站地图    |    在线留言    |    服务热线:0760-88626109

行业动态

上位机组态软件:组态软件到底算不算上位机?

日期: 2021-07-22 18:20:58

前言
      在工控领域中,WinCC仍然占有很大的市场份额。很多时候我们说学习C#开发上位机可以取代传统的组态软件,两者就像冤家一样,然而,即使是冤家,也会有联合的时候。比如,当我们的项目已经采用WINCC并已经落地,如果我们学会C#,能做哪些事情呢?今天跟大家分享一下如何使用C#/.NET联合西门子WinCC实现数据通信。
环境搭建

      众所周知,WinCC作为西门子家族的一款组态软件,主要是用来和PLC(主要是西门子PLC)通信,因此我们选择的硬件就是一款西门子S7-1200 PLC。软件方面,使用的是WinCC V7.4(其他版本待测试),以及宇宙第一IDE——VS 2019。
      这里注意一下:测试时当安装好WinCC V7.4,通过添加驱动和S7-1200 PLC通信时,怎么都连接不上,最后发现应该是WINCC的S7-1200 PLC的驱动有点BUG,缺少一些组件,通过安装TIA博图之后,最终解决。
      如果想通过C#联合WINCC访问到PLC里的变量,前提是WINCC项目已经开发好,并且处于运行状态,操作步骤如下:


1、首先创建一个S7连接,并创建4个变量分别为data1、data2、data3、data4,地址对应DB100.DBD0、DB100.DBD4、DB100.DBD8、DB100.DBD12,如下图所示:


2、创建一个画面,拖入4个显示控件,分别绑定这4个变量,通过博图将4个变量的值分别设置为50.5、60.5、70.5、80.5,如下图所示:   

3、运行WINCC画面,如下图所示:


访问WINCC变量
1、首先创建一个新的Windows窗体应用,再从WINCC安装目录中找到两个dll,分别是CCHMIRuntime.dll和CCHMITags.dll,位置默认处于C:\Program Files (x86)\Common Files\Siemens\Bin,将这两个dll复制到debug根目录下并手动添加引用:

2、Windows窗体界面设计


3、编写读取变量代码