能源论坛圈

  1. 6089 成员
  2. 6.2万 人气

参与评论

    西门子PLC在 WinCC 中如何生成用户自定义操作员输入消息?

    帖子创建时间:  2011年11月08日 13:25 评论:3 浏览: 10434 投稿

    西门子PLC(西门子变频器等)在 WinCC 中如何生成用户自定义操作员输入消息?

    WinCC V7.0 新特性:
    从 WinCC V7.0 起,可利用 C 动作和 VBS 动作的标准函数生成用户自定义操作员消息。可在 WinCC 信息系统的路径中:使用入门 > WinCC V7 中有哪些新增功能 > WinCC V7 中的新增功能 > 其他创新获取更多信息。
    初步信息:
    使用 WinCC Audit 选件不需要过多的组态便可以实现在 Audit Trail 中获得操作员输入消息。那么对于整个工厂通过 WinCC 客户端/服务器( WebNavigator 客户端/服务器)的项目画面可以使操作员输入消息集中显示在 Audit Trail 中。Audit Trail 被保护以防止修改。
    此外,在项目设计中的修改也能够在 Audit Trail 中记录。WinCC Audit 选件是相应配套发布的标准 WinCC 选件。
    说明:
    如果在组态 I/O 域时已将“Operator Input”属性设置为“Yes”,通过使用 I/O 域会在 WinCC 中自动生成操作员输入消息。
    本条目展示如何使用 WinCC 选件“WinCC Open Development Kit(ODK) 生成用户自定义的操作员输入消息。例如可能在按钮按下时需要生成一条操作员输入消息。在本条目中的 C 函数使用的是在 WinCC V6.0 SP3 和更高版本中的 ODK 函数。与此相反,条目 ID 218555 使用的是也可在 WinCC 早期版本中实现的 ODK 函数。有关 ODK 的信息可在条目 ID 9652128 中获得。
    注意,关于操作员输入消息可在 WinCC 在线帮助“WinCC 信息系统 > 使用 WinCC > 建立消息系统 > WinCC 中的消息归档”中获得。
    下表描述了如何组态用户自定义的操作员输入消息。在本条目中假定使用了 WinCC OS project editor。 对于 OS project editor 生成的画面(消息窗口)不必进行任何修改。用户自定义的操作员输入消息显示在消息窗口的“operation list”中。
     


    步骤

    描述

    1

    在报警记录中组态操作员输入消息
    打开报警记录编辑器创建一个消息类别“Operator Input Message”的消息。为消息任意选择一个编号。在本例中将使用消息编号“1001”。

    Fig.01
    在“Text”选项卡中设置那些在运行时显示的用户文本块参数。在本例中过程值块 1 到5 的值以文本显示在用户文本块 1 到 5 中。

    Fig. 02
    这里仅将过程值块分配给用户文本块。过程值块的实际设置是在运行时通过函数“MSRTCreateMsgInstanceWithComment()”完成的(见步骤 2)。
    注意:
    原则上也可使用消息编号“12508141”的内部消息生成操作员输入消息。因此完全不需要本组态步骤。可是,消息编号“12508141”的操作员输入消息的结构是预先定义不可更改的。操作前的数值(原有数值) 显示在过程值块_2 中而更改后的数值(新数值)显示在过程值块_3 中。包含已登录用户名的用户文本块_3 和用户文本块_5 跟随着新数值和原有数值。

    2

    编写生成操作员输入消息的函数
    下列下载包含文件“24325381_ISALG_OperationLog_V6-2-0-1.fct (在 WinCC V6.2 中创建)”。

    拷贝文件到 WinCC 项目目录中的“library”目录中。打开“Global Script C”编辑器并执行“Tools > Regenerate Header”菜单命令。然后“ISALG_OperationLog()”函数可作为项目函数使用。
    为了生成在运行时的操作员输入消息同样必须在客户端的 WinCC 项目(多客户)中执行这一步骤。
    注意:
    “ISALG_OperationLog()”函数的结构描述如下。

    • INIT_MESSAGE_STRUCT
      在这部分中填写结构“MsgCreateEx”用于生成消息。“GetLocalTime()”函数获取本地计算机时间。“GetComputerNameA()”函数获取计算机名。“PWRTGetCurrentUser()”函数获取当前登录的 WinCC 用户名。在这部分中对于作为文本值的过程值块 1 到 5 的有效性及初始化函数检查传输参数。

      过程值 block_1
      参数
      pszSource
      在“pszSource”参数中能够传输消息来源(例如,变量名称或测量点名称) 到操作员输入消息。如果使用这个参数(数值不能等于零),此文本显示在消息的过程值块_1 中。

      过程值 block_2
      参数
      pszArea
      在参数“pszArea”中可以传递区域(例如系统区域或子系统)到操作员输入消息。如果使用这个参数(数值不能等于零),此文本显示在消息的过程值块_2 中。

      过程值块, 过程值 block_5
      参数 pszEvent, fOld, fNew, pszUnit
      在参数“pszEvent”中可以传递一个事件文本(例如“Specify setpoint value”或“Motor ON”)到操作员输入消息。在参数“fOld"”中可以传递操作前的数值以及在参数“fNew”中修改后的数值。在参数“pszUnit”中可以传递度量单位。这个数据以及计算机名和用户名显示在消息的过程值块_3 和过程值块_5 中。

      过程值 block_4
      参数 pszBatch
      在参数“pszBatch”中可以传递批次名称到操作员输入消息。 此文本显示在消息的过程值块_4 中。
       
    • START_MESSAGE_SERVICE
      在这个部分“MSRTStartMsgService()”函数被调用。

      注意:
      如果“MSRTStartMsgService()”函数在客户端(多客户)上使用,操作员输入消息会输出到所组态的标准服务器上。如果没有组态标准服务器,函数调用失败。为了组态标准服务器在 WinCC 浏览器的项目树中右键点击“Server data”条目。然后在弹出的菜单中打开选择“Standard server...”条目。分配期望的 WinCC 服务器符号计算机名给报警记录(报警组件)。可用的符号计算机名的服务器数据可被倒入。
       
    • CREATE_MESSAGE_INSTANCE
      在这部分“MSRTCreateMsgInstanceWithComment()”函数被调用。
       
    • STOP_MESSAGE_SERVICE
      在这部分“MSRTStopMsgService()”函数被调用。

    函数包含“printf()”语句,可在运行时的全局脚本诊断窗口或在 APDIAG “Output Window”中生成诊断消息。

    3

    调用函数生成操作员输入消息
    可直接在过程画面或面板中使用“ISALG_OperationLog()”函数。下图显示了通过点击按钮实现函数的调用。

    Fig. 03

    注意:

    • “MSRTCreateMsgInstanceWithComment()”函数从 WinCC V6.0 SP3 开始可以使用。它需要使用结构类型“MSG_RTDATA_INSTANCECOMMENT_STRUCT”。过程值块可支持最多 256 个以“ZERO”结尾的字符文本。然而文本的实际的最大程度不超过 255 个字符。因为在 WinCC 报警记录中的用户文本块只能显示最多 255 个字符。而且,在 WinCC 报警控件中显示长文本并不适用。
    • WinCC V6.0 SP3 之前 的版本中可以使用“MSRTCreateMsg()”函数作替代来生成操作员输入消息。在这种情况下注意过程值块的字符长度最大为 32 (与结构“MSG_RTCREATE_STRUCT”有关)。 如果想要在用户文本块中显示更多的字符,可使用多个过程值块显示已过用户文本块。使用单独的函数“MSRTSetComment()”设置消息的注释。
    • 本条目中的脚本已在 WinCC 单用户和 WinCC 客户机项目中经过测试。适合于下列版本:WinCC V6.2WinCC V7.0。也与 WinCC Web Navigator V6.2 和 WinCC Web Navigator V7.0 成功测试。

    警告:

    • Audit 仅记录 Web Navigator client 的登录,所有 Web Navigator 的其他操作不记录。
    • 在 WebNavigators V7.0 之前版本中,不能确定用户名只能确定计算机名而用户名将被“---未知 web 用户---”替代。
    • 如果在 WinCC 服务器(或单用户站)或 WinCC 客户端上没有用户登录,那么用户名将被“---未知用户---”替代。
    奥诚兴泰科技有限公司
    1. 商家友圈官方圈
      人数:8.1万
    2. 2A以上商家圈
      人数:8.2万