组态描述:
在报警归档中,"Loop in Alarm" 功能为每一条报警消息分配了一个 C 函数。该函数可以提供运行状态下的画面切换或面板的调用功能。WinCC 使用标准函数 "OpenPicture()" 作为默认的图形函数。
如果用户使用 "Basic Process Control" 选件将 WinCC 用户界面分隔成导航区、按钮区和工作区,而且在画面切换时仅仅只是工作区中的画面进行切换(也就是说,导航区和按钮区保持不变)。那么,此时原有标准的 "OpenPicture()" 函数就不适合进行画面切换了。原因是,标准的 "OpenPicture()" 函数将进行整个 WinCC 屏幕的切换。被打开的WinCC画面将覆盖整个屏幕,导航区和按钮区将消失。n
注意:
下图所示为 WinCC 标准的 "OpenPicture()" 函数。它使用了 WinCC 内部函数 "SetPictureName()" 来改变屏幕窗口的 "Picture name" 属性。第三个参数 "szPictureName" 中包含了需要切换的画面名。当 "lpszPictureName"和 "lpszObjectName"参数 (第一和第二个参数) 被组态为"ZERO" 时,画面将进行WinCC全屏幕的切换。该特性同样适用于使用 "SetPropChar()" 进行屏幕窗口的画面切换时。n
图. 01n
补救措施:
根据需求调整"OpenPicture()" 函数或重新编写新的画面切换函数。"Loop in Alarm" 功能使用的画面切换函数只需要一个 "char*" 型参数和 "unsigned char"、 "short int"、 "long int"、 "float"、 "double"、 "bool"或 "void"型返回值。n
- 使用用于屏幕管理的Basic Process Control 函数
如果使用 Basic Process Control,则用户可以使用 "SSMRTChangeWorkField()" 分屏管理函数。
图. 02
- 使用用于屏幕管理的分屏函数
如果不使用 Basic Process Control,则通常情况下用户拥有单独的项目或标准的屏幕管理函数。使用这些函数来实现 "Loop in Alarm" 功能或修改这些函数。
注意:
被分配给 "Loop in Alarm" 功能的函数仅仅在运行状态下,用户点击了报警控件中的 "Loop in Alarm" 按钮并且为函数的 "Picture name/ Call parameter" 参数分配了精确的字符串(图形名) 后才会被调用。如果用户没有分配字符串或者分配了多个字符串(例如,字符串包含空格等)时,该函数将不会被调用。
详情请参考如下 WinCC在线帮助:
PCS 7 V8.0 及其以上版本
- "WinCC Information System > Working with WinCC > Setting up a Message System > Working with Messages > Variables of a Single Message > How to Configure a Picture with a Message".
- "WinCC Information System > Options > Options for Process Control > OS Project Editor > Split Screen Manager > The "Loop in Alarm" Function"
PCS 7 V7.1 及其以下版本
- "WinCC Information System > Working with WinCC > Setting up a Message System > Configuring the Message System > Working with Single Messages > Coecting a Picture with a Single Message".
- "WinCC Information System > Options > Options for Process Control > OS Project Editor > Split Screen Manager > The "Loop in Alarm" Function"
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325336.html