关于PLC与wincc之间建立通讯断开后触发报警的疑问

已锁定

再见

  • 帖子

    73
  • 精华

    0
  • 被关注

    2

论坛等级:游侠

注册时间:2013-01-17

普通 普通 如何晋级?

关于PLC与wincc之间建立通讯断开后触发报警的疑问

1845

2

2015-10-25 18:07:51

     最近看梁智斌的wincc教程,其中第57讲,说到连接的诊断,比如某个PLC停了,怎么样产生一条消息出来,它这里是拿300PLC的仿真软件S7-PLC SIM和wincc通讯,当S7-PLC SIM停了,就在wincc报警记录里面弹出一条消息,当然它是用C脚本实现的,用的是GetTagByteState这个函数,意思好像是说,取一个来至300PLC的外部变量(无符号8位)做状态,如果为1,说明故障;如果为0,说明正常,再把得到的结果给到报警记录里面的变量,周期触发报警

     我呢300PLC不会用,为了实现这个,我自己想了无厘头的实验,反正GetTagByteState是取外部变量的状态位,那我200PLC和wincc通讯全靠pc access,我在pc access里面建立一个无符号8位的变量放到wincc里面,然后在wincc的全局变量中写上如下的一段

#include "apdefap.h"

int gscAction( void )
{
#pragma option(mbcs)
DWORD tt1,tt2;
DWORD tagState1=0;
GetTagByteState("vb200",& tagState1);
if (tagState1==1)
{
tt1=GetTagByte("C2");
tt2=tt1|2;
SetTagByte("C2",(BYTE)tt2);
}

return 0;
}

取pc access里面的VB200做状态判断,看是否会报警

      但是结果是,当我wincc运行后,无论我是停下我的200PLC或是把VB200这个变量删除甚至把整个OPC外部变量都删除,都没看到报警,所以我在想是压根就不能这么用,还是可以用,我哪里做错了

关于PLC与wincc之间建立通讯断开后触发报警的疑问 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32564条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。