当WinCC Unified完全抛弃VBScript只使用JavaScript的技术决定实施之后,数以万计有着二三十年工作经验的自动化工程师们陷入了焦虑之中:自己几十年来积累下来的脚本经验难道真的要化为乌有?虽然只是简单的语言转换,但是它代表了整个工业自动化的技术范式的转变——从封闭的桌面时代进入到开放的Web时代。
一、架构革命:Web 化就是工业 4.0 的必经之路
西门子做出上述决定的主要原因是WinCC Unified由原来的C/S(客户端/服务器)结构转变成了现在的B/S(浏览器/服务器)结构。
传统的C/S架构存在的主要缺点
传统的WinCC所用的C/S架构有很多无法解决的问题:客户端依赖性很强:每台操作终端都必须安装专用客户端软件,部署和维护成本很高跨平台能力不足:只能够在 Windows 系统中运行,不能够支持 Linux、macOS 和移动设备远程访问困难:需要设置复杂的 VPN,而且效果很差多终端适配麻烦:同一个画面要针对不同的触摸屏、PC进行开发,重复工作很多
WinCC Unified 的 Web 架构突破
WinCC Unified 实际上就是一种带有内置Web服务器的工业监控系统,在运行的时候就相当于启动了标准的Web服务。所有的HTML5浏览器都可以用作客户端来访问,不需要安装其他的任何软件。该结构带来的是革命性的优点:无处不在的访问:工程师可以随时随地用手机、平板或者电脑来监控和调试生产线一次开发,多端运行:所有的终端都使用相同的SVG+JSON结构化的画面定义,并且可以自动适应各种不同的分辨率零客户端维护:所有的更新都由服务器端完成,客户端会自动获取最新的版本云边协同天然支持:可以无缝集成云计算、边缘计算以及工业互联网平台在这样的结构之下,JavaScript 由于它是Web浏览器唯一的标准脚本语言,所以就成了唯一的选择。WinCC Unified 还直接使用了Google的V8JavaScript引擎,并且完全支持ES6+的现代语法特性,比如箭头函数、类、Promise等等。
二、安全危机:VBS已经不能适应现代工业环境了
VBScript 在 1996 年出现之后,就没有再做大的改动了。它产生于互联网初期,那时非加密的HTTP是主流,但是现在加密通信、云计算和跨设备协作已经成为了工业系统的最基本要求。
VBS 安全隐患
VBS在最初的设计中并没有考虑到现代的安全要求,因此它存在很多致命的缺陷:缺少沙箱机制,脚本可以访问到系统的底层资源,很容易被恶意软件所利用没有原生的HTTPS支持:不能够满足现代工业系统对于数据传输加密的基本需求浏览器全部弃用:除了老版IE之外,所有的现代浏览器(Chrome、Edge、Firefox、Safari)都不再支持VBS无安全更新:微软已经停止了对VBS的安全维护,新的漏洞将会一直得不到修复
JavaScript 安全的优势
而JavaScript经过了二十多年的发展之后,也建立起了一套完整的安全体系:严格的沙箱隔离:浏览器中运行的JavaScript处于受限制的环境里,不能够直接访问到系统的资源原生HTTPS支持:所有的现代浏览器都会强制使用HTTPS加密持续的安全更新:各大浏览器厂商、JavaScript 引擎团队不断地修复安全漏洞完善的权限控制:可以对脚本的访问权限进行精确的设置对于工业系统来说,安全就是生命线。由于工业互联网的发展,工控系统越来越容易被网络所攻击,使用安全的技术栈已经成了必须的选择。
三、生态终结:微软已经给VBS敲响了丧钟
2024年5月23日,微软正式宣布VBScript将被弃用,这是压垮骆驼的最后一根稻草。
微软三阶段弃用的时间表
微软表示VBScript的淘汰将会分三个阶段来完成Microsoft Community Hub:第一阶段(2024-2027年):VBS作为Windows的“按需功能”提供,默认开启第二阶段(2027年左右):VBS仍然可以手动打开,但是不会默认打开第三阶段(2027年之后),VBS将会从Windows系统中彻底消失,所有的相关DLL文件都将被删除这也就意味着,在 2027 年以后,依靠 VBS 的工业系统就无法在新的 Windows 版本上运行了。对于生命周期长达十几年到几十年的工业系统而言,这是一个不能忽略的风险。
JavaScript 有生态优势
与 VBS 垂死挣扎形成鲜明对比的是,JavaScript 有着最大的开发者社区和最活跃的开发环境:庞大的开发者社区:全世界有数千万个 JavaScript 开发者丰富的开源库:NPM 仓库有超过 200 万个包,包括从 UI 组件到工业通信等各个领域的内容全栈开发能力:JavaScript 不仅可以用来做前端,还可以用 Node.js 来开发后端服务工业领域的发展非常迅速:NodeS7(西门子 PLC 通信)、Modbus-Serial 等工业库已经很成熟了使用JavaScript意味着西门子可以利用整个Web生态系统的好处而不需要自己维护一个封闭且落后的技术栈。这样可以加快WinCC Unified的功能更新频率,并且减少开发费用。
四工程师转型:危机和机会同在
对于习惯于使用VBS进行自动化的工程师而言,学习JavaScript其实是一次很好的机会。
技能升级的必要性
技术发展不会受到个人意愿的影响。工业自动化的进程正由OT(操作技术)向OT/IT融合的方向发展,掌握先进的IT技术已经成为自动化工程师的基本要求。JavaScript 不仅是 WinCC Unified 的脚本语言,而且是整个 Web 世界通用的语言。掌握了 JavaScript 后,工程师的能力边界就会被大大扩展:可以创建自定义Web控件来增加WinCC Unified的功能可以开发出独立的Web应用程序,并且能够和工业系统进行集成可以进行前端、后端甚至是全栈开发可以涉足数字孪生、AR/VR等新兴领域
西门子的过渡支持
西门子也充分考虑到工程师的过渡需求:WinCC V8.2 及以上的版本也已经支持了 JavaScript,给工程师们提供了一个练习的场所提供了很多的学习资源以及示例代码保留了大部分熟悉的组态概念,降低了学习难度支持用Chrome DevTools来调试脚本,比传统的VBS调试工具好很多
结论就是:接受变化,迎接未来
西门子放弃 VBS 转投到 JavaScript,并不是一时冲动做出的选择,而是对工业自动化未来发展趋势有很深的认识之后才做出的决定。这样的改变意味着工业软件已经进入Web时代,这是工业4.0以及数字化转型所必需的。对于自动化工程师而言,与其焦虑、抗拒,倒不如积极地去接受这些变化。学习 JavaScript 并不是为了适应 WinCC Unified,而是为了打开通向更加广阔的职业发展道路的大门。在技术更新换代如此之快的时代里,唯一的办法就是不断的学习来提高自己的能力。大家不要犹疑不决了,赶快学好 JavaScript 吧,跟上自动化技术发展的同时。
329