首页 > 行业资讯 > WinCC Unified 中全局模块

WinCC Unified 中全局模块

时间:2022-06-15 来源: 浏览:

WinCC Unified 中全局模块

自控技术FAQ
自控技术FAQ

scadafaq

个人公众号『ScadaFAQ』,作者:RobinLiu,分享自控scada技术相关内容(在公众号底部菜单查看更多精彩内容)。

收录于合集

以下文章来源于WINCC脚本专栏 ,作者robinliu

WINCC脚本专栏 .

本公众号分享WINCC ANSI-C VBScript JScript VBA 脚本相关内容

主要内容:

1、导出export

2、导入import

3、WinCC Unified 中全局模块

测试环境:

WINCC Unified v17 update4

ECMAScript规范 从第 6 版ES2015开始,在语言标准的层面上实现了模块功能。添加了  import  和  export 关键字。 使用模块,可以将一个大程序拆分成多个文件,每个文件都是一个模块,再用简单的方法拼装起来。

ES6 模块中的代码自动应用严格模式,不用显式在模块头部加上 use strict 模块中定义的常量、变量、对象、函数、类对这个模块而言都是局部的,不会污染全局作用域。 需要显式的导出才可以被其他文件使用。

1

  导出export

要从ES6模块导出对象,只要在声明前加上export关键字即可。

示例:模块module1.js

export let a; export function add ( x,y ) { return x+y;};

或者,声明时不加export,在文件末尾使用一个export统一导出

let a; function   add ( x,y ) { return  x+y;}; export  {a,add};

注意使用export的常规导出只对有名字的声明有效。

export  (x,y)=>x+y;

如上面的语法是错误的,无法使用export导出一个没有名称的箭头函数。

一个模块如果只需导出一个对象,通常可以使用export default而不是export。export default还可以导出没有名称的对象。

export default (x,y)=>x+y;

合并导出 ,意思就是在一个模块中可以导出其他模块的已导出对象,相当于自己的导出。

示例:

export  *  from "./module1.js" export * from "./module2.js"

这样可以将多个子模块聚合到一个父模块,其他文件只要导入此父模块即可,简化了语法。

2

  导入import

导入其他模块导出的对象使用 import 关键字。

如导入上面module1.js模块导出的对象

import {a,add} from "./module1.js"

使用 import,然后是被大括号包围的用逗号分隔的需要导入的对象的名称列表,然后是关键字 from,然后是模块文件的路径。模块文件路径是一个以“/”开头的绝对路径,或者是一个以“./”或“../”开头的相对路径,又或者是一个带有协议及主机名的完整URL。

通常从定义了很多导出的模块导入时,可以像下面这样以一条import语句轻松的导入所有对象:

import * as m1 from "./module1.js"

这样一条语句创建了m1对象,模块导出对象的名字作为这个对象的属性名。使用导出的对象时始终以 m1 为前缀如m1.add。这也可以很好的解决,导入的不同模块的导出对象存在相同名称的冲突问题。

3

  WinCC Unified 中全局模块

WinCC Unified提供了全局模块方法,模块可供画面脚本、计划任务、其他模块使用。符合ES6规范。

如点击“添加新全局模块”新建一个名称为m1的全局模块,打开“全局定义区域”,添加一个默认导出的函数

在画面中使用此模块:

画面添加一按钮在“单击鼠标左键”事件中调用模块的函数

在事件的“全局定义”中导入模块,在 WinCC Unified中模块路径是直接使用模块名。

然后点击上面工具栏“脚本函数”,切换到事件脚本的编辑窗口编写脚本

通过module_m1.default使用模块导出的默认函数。

以上就是全局模块的基本使用方法。

- - -  正  文 - - - - - - 结  束 - - -


如果你有与本文相关问题可以后台发消息,欢迎 点分享、收藏、点赞、赏

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐