前言 SVG并非仅仅是一种图像格式, 由于它是一种基于XML的语言,也就意味着它继承了XML的跨平台性和可扩展性,从而在图形可重用性上迈出了一大步.如SVG可以内嵌于其他的XML文档中,而SVG文档中也可以嵌入其他的XML内容,各个不同的SVG图形可以方便地组合, 构成新的SVG图形.这个 Demo 运用的技术基于 HTML5 的技术适应了只能电网调度.配电网运行监控与配电网运维管控,通过移动终端实现 Web SCADA 账上运维的时代需求.由于传统电力行业 CS 桌面监控系统一直到新一代 We…
前言 SVG 并非仅仅是一种图像格式, 由于它是一种基于 XML 的语言,也就意味着它继承了 XML 的跨平台性和可扩展性,从而在图形可重用性上迈出了一大步.如 SVG 可以内嵌于其他的 XML 文档中,而 SVG 文档中也可以嵌入其他的 XML 内容,各个不同的 SVG 图形可以方便地组合, 构成新的 SVG 图形.这个 Demo 运用的技术基于 HTML5 的技术适应了只能电网调度.配电网运行监控与配电网运维管控,通过移动终端实现 Web SCADA 账上运维的时代需求.由于传统电力行业 C…
PCHMI是一款适合所有PLC工程师快速上手工控组态开发的控件 下面是视频教程链接 PCHMI工控组态 02-按钮的使用 PCHMI工控组态 03-数据显示器使用 PCHMI工控组态 04-标签控件的使用 PCHMI工控组态 05-图片控件的使用 PCHMI工控组态 06-文本列表使用 PCHMI工控组态 07-下拉控件的使用 PCHMI工控组态 08-语言切换功能 PCHMI工控组态 09-添加互锁 PCHMI工控组态 10-报警显示 PCHMI工控组态 11-创建自定义风格的界面 PCHMI…
PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发.开发者不用去学习那些没有用的脚本语言,借助Visual Studio对多语言的支持.比如:C#.VB.C++.F#.JS.J#.Python等.你只需要使用你最熟悉的那门语言,就可以对PCHMI进行复杂的二次开发.当然这不是PCHMI的初衷,作者已经将工业组态中最常用的功能进行了模块化封装.开发者只…
对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像更精细.笔者认为最好用的工控控件当属 Iocomp 和 ProEssentials.下面笔者对这两个工控控件进行了简单的对比评测: Iocomp工控仪表 Iocomp公司可以说是工业仪表盘控件的龙头老大,在国内工业自动化集成商中,尤其是OPC项目,采用Iocomp产品进行仪表设计的项目越来越多…
在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在HTML5流行前VML和SVG算是真正纯种Web方案也是有不少应用,近些年随着HTML5的流行,加上移动终端对HTML5支持的普及,越来越多新项目开始采用真正纯HTML5的方案,更具体的说大数据量应用性能高于SVG的Canvas方案,已经逐渐成为当今Web SCADA前端技术的首选标配方案. htt…
在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在HTML5流行前VML和SVG算是真正纯种Web方案也是有不少应用,近些年随着HTML5的流行,加上移动终端对HTML5支持的普及,越来越多新项目开始采用真正纯HTML5的方案,更具体的说大数据量应用性能高于SVG的Canvas方案,已经逐渐成为当今Web SCADA前端技术的首选标配方案. 最近客…
得益于 HTML5 WebGL 技术的成熟,从技术上对工控管理的可视化,数据可视化变得简单易行!完成对工控设备的管理效率,资源管理,风险管理等的大幅度提高,同时也对国家工业4.0计划作出有力响应! 如本案例所示,是一个基于 HTML5 WebGL 技术实现的计量站三维可视化监控系统,在本案例中,具体宏观的展示一个油田站点的整体场景,然后点击可以进入内景看到油田计量站内景的具体情况,同时可以看到各个设备的参数的当前状态. 同样的其中功能组件具有很高的复用性,所以也会非常方便的应用到其他场景中! 如…
一.   引子 在当前自动化.信息化.智能化的时代背景下,数据的作用日渐凸显.而工业发展到如今,科技含量和自动化水平均显著提高,但对数据的采集.利用才开始起步. 对工业企业而言,数据采集日益受到重视,主要应用场景包括: 节能降耗.投入(如车间的水电气能耗.设备工时.原料耗用)和产出(产量.批数)这些成本核算的关键数据通过传感器采集,取代人工抄表已成为趋势. 绩效考评.投入.产出.损耗.工时数据,其对管理者的决策支持.对员工的绩效评估都很重要. 批次追溯.食品安全形势日益严峻,对物料的追溯也成为国…
一.   引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning信号:但有些时候不会这么简单,比如温度计在温度高于50℃显示红色;某设备报警,可能是多个条件其中之一触发的结果:变量变化触发一系列连锁反应…如此种种.考虑到工控行业大部分技术人员并非计算机专业出身,如何能够用最少的编码解决各种复杂的变量-动画绑定问题,无疑要费一番心思. 二.   方案选型 针对变量…
一.   引子 写这个开源系列已经十来篇了.自从十年前注册博客园以来,关注了张善友.老赵.xiaotie.深蓝色右手等一众大牛,也围观了逗比的吉日嘎啦.精密顽石等形形色色的园友.然而整整十年一篇文章都没有写过,属于非常努力的在社区汲取营养的菜青虫一只,现在也算破茧而出了,虽然远没有得道化蝶的境界,也在写作过程中得到不少提升.我开源的这个项目也有我固有的不良代码风格:严重缺乏注释,一方面是懒,一方面因为是单兵作战,也未曾想过让别人理解自己的代码.如何用简洁明了的方式表达自己的思路,虽然烧脑,但得到…
使用E-Form++可视化企业版本,构建属于自己的专业工控.建模仿真. 监控组态.培训仿真平台! -- 100%源码 (全部采用VC++/MFC编写,支持.NET, Java, Web, Delphi等开发)彻底开放组态平台! 构建专业工控.仿真平台是一件非常复杂的系统工程,使用E-Form++可视化源码组件库将为您节省超过70%的开发时间.为了能更加清晰的显示如何完成这项工作,我们专门对原来的解决方案进行了细致的拓展,构建了能够对所有工控开发过程中的变量.画面.脚本等进行综合管理的解决方案.该…
一.   前言 在园子潜水也七八年了.说来惭愧,这么多年虽然一直自称.NET铁杆粉丝,然仅限于回几个不痛不痒的贴,既没有发布过代码,也没有写过文章. 看着.NET和C#在国外风生水起,国内却日趋没落,我也早觉得有写一点东西的必要了. 二.   为什么要开源,它能做什么 开源是大势所趋 现在已经不是兜售软件光盘卖授权的时代了.我自己开发这套系统也得益于开源. 起因是因为看到单位用的组态软件被版权问题困扰,同时系统十分庞大,动辄几个G,安装部署调试都不方便,同时脚本功能和扩展能力也有限. 开始就是自…
在电力.油田燃气.供水管网等工业自动化领域 Web SCADA 的概念已经提出了多年,早些年的 Web SCADA 前端技术大部分还是基于 Flex.Silverlight 甚至 Applet 这样的重客户端方案,在 HTML5 流行前 VML 和 SVG 算是真正纯种 Web 方案也是有不少应用,近些年随着 HTML5 的流行,加上移动终端以及浏览器对 HTML5 支持的普及,越来越多新项目开始采用真正纯 HTML5 的方案,更具体的应该说是大数据量应用性能高于 SVG 的 Canvas 方案…
一.   引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的.   大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技,如果用好,VS可以打造为你专用的神兵利器. 为什么我要扩展Visual Studio的界面设计器?当时我在设计组态软件的时候面临最大的困难大概就是设计器了.一套成熟的组态设计器包括:界面设计器(包括工具栏.设计器.属性管理器).脚本编辑器(各种语法高亮.语法检查.自动完成等等等等).编译(解释)器…
一.   工控网关是什么 网关是物联网和工控系统的核心组件.网关起的是承上启下的作用.上即上位机,电脑/触屏监控系统.MES这些:下即下位机,包括PLC.传感器.嵌入式芯片等. 不同厂家的下位机,往往讲的是不同的语言,西门子的语言叫ProfiBus,施耐德的语言叫Modbus,AB的语言叫Ethernet IP.在楼宇自控领域,又有BACnet .. 网关要担当沟通上.下位机的重任,它的基本功能就是翻译,即协议转换.管你说哪种方言,最后转给上位机的都是普通话. 二.   如何实现软网关:启下 网…
我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. 图.CPU显示问号 一.问题产生的原因 这个问题产生的原因是我们利用低版本的Step7 打开项目的时候,由于Step7 里面没有最新的 硬件的描述性文件导致的. (说明: 西门子的硬件说明文件时.xml格式的文件). 二.解决方法 解决方法有三个: 升级Step7 .重装系统.升级硬件描述性文件.…
Wireshark是一个强大开源流量与协议分析工具,除了传统网络协议解码外,还支持众多主流和标准工控协议的分析与解码. 序号 协议类型 源码下载 简介 1 Siemens S7 https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-s7comm.c 西门子PLC支持的通讯协议 2 MMS(IEC61850) https://github.com/wireshark/wireshark/tree/mast…
“祝融”作为一种针对传统PLC控制系统的欺骗攻击病毒,所述的典型的PLC控制系统通常包括两部分: 用于组态.编程.监视.控制的工程师站(通常是PC设备) PLC控制器(通常如西门子.施耐德.三菱等厂家的产品) 此外,在工程师站中通常安装着PLC生产厂家提供的用于PLC控制器组态和编程的开发软件和用于监视和修改PLC内部变量的监控软件.具体对“祝融”而言,所攻击的PLC是西门子公司的S7-300/S7-400,在工程师站上安装的组态和编程软件是Step7,安装的监控软件是Wincc,不用多说,这些…
在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢? 我们知道在Windows系统中可以通过批处理来实现很多功能,而且操作也比较简单,学习起来也 没有多大的难度.那么我们是否可以Windows的批处理功能来实现日志功能呢? 一.WinCC执行外部程序. 在WinCC中通过 ProgramExecute("notepad.exe"); 函数…
WinCC的输入输出域用来显示信息或者接受操作人员的输入.当作为显示功能时,只有直接的变量连接 才能正常的显示,如果使用动态对话框进行设置且用了表达式则不能正确显示. 但是有时候我们在WinCC变量管理器里面已经有一个相关的变量A,而通过这个变量A可以经过一个固定 的计算方式可以得到一个我们想要的量B,我们有两种选择: 选择1.在PLC侧计算这个量B,然后再建立PLC到WinCC的链接,这种方式增加通讯负载量, 而且还增大了组态的工作量. 选择2.在WinCC侧进行计算.但是我们知道在WinCC…
这一篇依然是协议层面的,协议层面会翻译三篇,下一篇是电力系统中用的比较多的DNP3.这一篇中大部分引用的资料都可以访问到,只有一篇reversemode.com上的writeup(http://reversemode.com/downloads/logix_report_basecamp.pdf)需要身份认证才能下载,如果有朋友能下载求分享. Ethernet/IP 与Modbus相比,EtherNet/IP 是一个更现代化的标准协议.由工作组ControlNetInternational与OD…
工控安全这个领域比较封闭,公开的资料很少.我在读<Hacking Exposed Industrial Control Systems>,一本16年的书,选了的部分章节进行翻译,以其抛砖引玉. MODBUS Modbus是20世纪70年代后期由Modicon(现为施耐德电气)为了配合其可编程逻辑控制器(PLC)一起使用,创建的基于串行的控制协议.Modbus是最常见的工业控制协议,主要是因为Modbus是一种开放的简单而强大的协议,可以在没有任何版税的情况下开放使用.自从引入Modbus以来,…
前面有一篇文章说过西门子的软件安装的时候太麻烦,很容易出现错误. 但是有些错误在安装的时候却没有关系,例如下面的错误. 如上图所示,安装已经到最后一步,总结前面的修改系统组态已经打勾(✔) ,而且提示的是授权没有传送. 这是我们没有传送授权的报警, 就是告知没有授权的报警,其实软件已经安装成功. 处理: 直接点击 重新启动  即可. --------------------------------------------------------------分割线-----------------…
最近在做一个东西,需要用到通用开发语言开发一个软件来读取PLC的内容,这方面的难点在于解析PLC利用 以太网通讯的通讯协议,而一般的PLC厂商对自己的协议是封闭的,对一般的开发者是不开放的,虽然可以通过Wireshark 进行解析,但是工作量很大,且如果对Wireshark不熟悉基本也是无解,很难解析出来. 网上有部分用C#开发的开源库,但是自己对C#语言不懂,所以也就没法学习和应用了.因此我在这里开始了C#的 从零开始学习之旅(我的从零开始是指对C#一无所知,如果你要和我一起开启这趟旅程,应该…
一. 概述 跟随着工控安全一路走来,工控安全市场今年明显有相当大的改善,无论从政策还是客户需求,都在逐步扩大中.但是,搞工控安全研究的人员却寥寥无几.一方面工控安全是个跨学课的技术,需要了解多方面的知识,有比较高的技术上的门槛:另一方面,没有可以研究和学习的便利的环境.一般,搞这方面研究的公司或者个人,都会先购买一些硬件设备,搭建一个模拟环境,再做相应的安全研究,成本实在是太高.为了解决这个问题,我们做了一系列的相关的技术研究,通过构建一套虚拟的工业控制环境,从而降低了解和学习工控安全的门槛,推…
之前的文章我们都是在ctf的基础上学习工控协议知识的,显然这样对于S7comm的认识还不够深刻,这次就做一个实战补全,看看S7comm还有哪些值得我们深挖的地方. 本篇是对S7comm的补全和实战,阅读本篇之前一定要先阅读以下文章,掌握基本的S7comm知识: 工控安全入门(二)—— S7comm协议 本篇文章依然有很多笔者自己摸索的内容,可能存在错误,同时也发现了wireshark对于s7comm解析的几个模糊之处,希望大家能帮忙指正.本次选用的流量包来自于github的w3h,有兴趣的同学可…
在上一次的文章中我们介绍了施耐德公司的协议modbus,这次我们把目标转向私有协议,来看看另一家巨头西门子的S7comm.首先要说明,这篇文章中的内容有笔者自己的探索,有大佬们的成果,但由于S7comm是私有协议,一些结论和看法不可能完全正确,希望各位有认为不对的地方或是更好的看法可以评论告诉我. ps:有些专业名词可能不对,因为没找到准确的翻译或者是根本没找到官方定义(毕竟是私有协议),笔者就自己起了名…… 建议阅读本篇前首先阅读:工控安全入门(一)—— Modbus协议 S7comm简介 西…
一.前言 开始做了两年web.期间也整了一段时间winform.后来做了两年工控上位机,也就是做工控这两年发现机器跟面向对象真是如此贴切,也是我从处理数据和流程的思维转变为面向对象思维的开始.这对我后来学习mvc5.owin..net core以及其它各种框架的学习有非常大的帮助,我发现我能看懂源码,也能理解这些大牛为什么要这么去设计这些类,这些类是如何协同工作去实现一个复杂的可扩展的框架,因为这些框架.设计模式最最根本还是以面向对象的思维来处理具体场景的具体问题.这一瞬间有一百万种可能,转变思…
原理 一次回路和二次回路 一次回路:强电部分(380伏---22万伏),连接发电机.电动机.变压器.电网线路.电网开关.电网避雷器等等 二次回路:弱电部分,指的是控制线路.保护线路.测量线路.计量线路.指示线路 PLC:可编程逻辑控制器,采用模块化编程语言,遵循 IEC 61131标准,广泛用于工控系统,不会死机,抗电磁干扰能力强.以继电器逻辑控制为基础,逐步发展成为既有逻辑控制,又有计数.计时.分支程序数学计算.模拟量.脉冲控制等综合控制装置,取代传统的继电器--接触器控制系统 PCB:印刷线…