SCADA软件:GE Proficy二次开发_(21).Proficy脚本编程.docx

SCADA软件:GE Proficy二次开发_(21).Proficy脚本编程.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

Proficy脚本编程

脚本编程概述

脚本编程是GEProficySCADA软件中一个非常重要的功能,它允许用户在不修改核心软件代码的情况下,通过编写脚本来实现特定的控制逻辑和功能扩展。脚本编程支持多种语言,包括JavaScript、VBScript和Python。这些脚本可以在数据变化、报警触发、按钮点击等多种事件中运行,从而实现动态的控制和响应。

脚本编程的基本概念

事件驱动编程

在Proficy中,脚本编程是事件驱动的。这意味着脚本只有在特定事件发生时才会执行。常见的事件包括:

数据变化事件:当某个数据点的值发生变化时触发。

报警事件:当系统中的报警状态发生变化时触发。

按钮点击事件:当用户点击某个按钮时触发。

定时器事件:按照预设的时间间隔周期性触发。

脚本执行环境

Proficy提供了丰富的脚本执行环境,包括:

全局脚本:在整个应用程序中可用,可以在任何地方调用。

本地脚本:仅在特定的页面或对象中可用。

事件脚本:与特定事件关联,当事件发生时自动执行。

脚本语言选择

Proficy支持多种脚本语言,用户可以根据自己的喜好和项目需求选择合适的语言。常见的脚本语言包括:

JavaScript:广泛用于Web开发,语法简洁,功能强大。

VBScript:适用于Windows平台,与VBA(VisualBasicforApplications)类似。

Python:支持丰富的库和模块,适合复杂的数据处理和算法实现。

JavaScript脚本编程

数据变化事件

数据变化事件是最常用的事件之一。当某个数据点的值发生变化时,可以触发相应的脚本。以下是一个简单的JavaScript脚本示例,用于在数据点值变化时记录日志。

//当数据点Temperature的值变化时触发

functiononTagValueChanged(tagName,oldValue,newValue){

//检查数据点名称

if(tagName===Temperature){

//记录日志

Proficy.Log(Datapoint+tagName+changedfrom+oldValue+to+newValue);

//如果温度超过阈值,触发报警

if(newValue100){

Proficy.Alarm.raise(HighTemperature,Temperatureexceeded100degrees,Critical);

}

}

}

报警事件

报警事件用于在报警状态发生变化时执行特定的逻辑。以下是一个JavaScript脚本示例,用于在报警状态变为“活动”时发送电子邮件通知。

//当报警状态变为活动时触发

functiononAlarmActivated(alarmName,alarmMessage,alarmSeverity){

//检查报警名称

if(alarmName===HighTemperature){

//发送电子邮件通知

Proficy.Email.send(admin@,HighTemperatureAlarm,Thetemperaturehasexceeded100degreesandisnow+alarmMessage+severity:+alarmSeverity);

}

}

按钮点击事件

按钮点击事件用于在用户点击按钮时执行特定的逻辑。以下是一个JavaScript脚本示例,用于在用户点击按钮时弹出一个消息框。

//当按钮StartButton被点击时触发

functiononButtonClicked(buttonName){

//检查按钮名称

if(buttonName===StartButton){

//弹出消息框

Proficy.Dialog.show(StartProcess,Areyousureyouwanttostarttheprocess?,Proficy.Dialog.BUTTON_OK_CANCEL,function(result){

if(result===Proficy.Dialog.RESULT_OK){

您可能关注的文档

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档