WINCC对于做SCADA系统来说再熟悉不过,对于他的应用也是非常广泛,在这里不用多说。在这里我将自己经常用到的第三方程序作为WINCC辅助控制(经常说的外挂程序)如何与WINCC变量进行控制给介绍一下。
在这里之前我要说明一下WINCC都那么强大了为什么要做外挂程序呢?我以经历的一个案例来说明一下。
案例1、有一个包装系统比较小,由于甲方自己增加一个LED显示器,要求系统将重量数据频繁发送到第三方LED数据文件里,大家首先想到直接增加一个循环定时(由于重量几乎随时都在变化,循环执行的负载还小点)的计划任务就可以了。是的,我们一开始也是那样做的(还增加执行结果判断:建立一个全局变量,每个周期进行判断,当本次执行结果未完成,下一个周期过来就不执行),当系统运行12小时以上,连界面的按钮事件都出现明显卡顿。经过判断:删除该计划任务就没有问题,脚本很简单本身是没有问题。经过询问西门子工程师得到的答案:由于计划任务的脚本执行与画面脚本的执行是同一系统,而且属于单线程,说以出现延迟现象。还得从脚本的执行方式入手,后来采用外接程序的方式,独立开辟线程还能看到执行的实时状态
案例2、有一个项目IO点达到4000左右,系统比较大。在一个1500CPU中涵盖7套配料混合系统以及若干设备400余台。采用1台服务器+4台客户机模式,由于该系统与第三方设备管理系统对接,需要提供设备故障信息、设备运行时间、能耗、生产过程数据,当然我们也想到西门子也提供这些功能,无奈成本、灵活性考虑之下(这些简单应用我们就不用麻烦西门子了),我们采用外接程序给第三方提供数据完美解决
总结:当你需要进行与第三方进行数据交换,或者有大量计算任务需要循环定时执行时,外接程序是你最佳选择
C#编程软件 | visual Studio 2015 | |
SCADA编程软件 | wincc Professional v15 up4 |
1、选择C#语言,添加新项目。当然任何语言都可以
2、添加引用。
文章转自:https://mp.weixin.qq.com/s/1TsgE5Jy6-kTow_3AqqiMg (含原始文件)
楼主最近还看过