发表于:2024/7/4 10:34:01
#0楼
很多现场情况会遇到控制柜突然停电,柜子里的PLC及相关设备都会断电停机,导致上位机WinCC不正常退出,很有可能会使数据库不完整,导致下次WinCC启动时不能正常工作(经常要消耗大量的时间才能进入运行状态,甚至会出现死机现象),因此我们给出的解决方案是:配备小容量UPS电源,只要WinCC这台电脑能工作几分钟即可,以及添加断电时继电器触发节点。本文介绍通过WinCC的C脚本功能,保证下次WinCC启动的数据完整性和快速性,WinCC会自动退出的功能。
1、以S7-1200PLC为例,建立连接后,首先在WinCC上定义变量,例如:“powoff”
2、然后在全局脚本中打开“C编辑器”,然后新建动作,另存为action.pas,全局脚本的C-Editor全局动作里面就会出现action.pas
3、双击action.pas重新进行编辑触发器,编写如下代码:
#include "apdefap.h"
int gscAction( void )
{
if (GetTagBit("powoff")==1)
{ExitWinCC ();};
return 0;
}
4、点击信息/触发器图标——触发器——周期——添加周期,触发器名称例如“aaa”,周期选择2秒,选择确定
5、然后可以在画面上,添加一个输入/输出域,选择关联变量“powoff”。
6、最后在计算机属性里,勾选“全局脚本运行系统”,然后运行WinCC
运行后发现当变量“powoff”即M0.0,值由0变为1时,WinCC就会自动退出运行系统,并且自动关闭WinCC软件。
7、本文只是介绍了简单情况,如要实现更复杂的情况(比如:继电器动作后延时5秒后WinCC自动退出等等)都可通过C脚本方式实现!
1、以S7-1200PLC为例,建立连接后,首先在WinCC上定义变量,例如:“powoff”
2、然后在全局脚本中打开“C编辑器”,然后新建动作,另存为action.pas,全局脚本的C-Editor全局动作里面就会出现action.pas
3、双击action.pas重新进行编辑触发器,编写如下代码:
#include "apdefap.h"
int gscAction( void )
{
if (GetTagBit("powoff")==1)
{ExitWinCC ();};
return 0;
}
4、点击信息/触发器图标——触发器——周期——添加周期,触发器名称例如“aaa”,周期选择2秒,选择确定
5、然后可以在画面上,添加一个输入/输出域,选择关联变量“powoff”。
6、最后在计算机属性里,勾选“全局脚本运行系统”,然后运行WinCC
运行后发现当变量“powoff”即M0.0,值由0变为1时,WinCC就会自动退出运行系统,并且自动关闭WinCC软件。
7、本文只是介绍了简单情况,如要实现更复杂的情况(比如:继电器动作后延时5秒后WinCC自动退出等等)都可通过C脚本方式实现!
[此贴子已经被作者于2024/7/4 11:48:55编辑过]