首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
开源纯C#工控网关+组态软件(八)表达式编译器
】的更多相关文章
开源纯C#工控网关+组态软件(八)表达式编译器
一. 引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning信号:但有些时候不会这么简单,比如温度计在温度高于50℃显示红色;某设备报警,可能是多个条件其中之一触发的结果:变量变化触发一系列连锁反应…如此种种.考虑到工控行业大部分技术人员并非计算机专业出身,如何能够用最少的编码解决各种复杂的变量-动画绑定问题,无疑要费一番心思. 二. 方案选型 针对变量…
开源纯C#工控网关+组态软件
一. 前言 在园子潜水也七八年了.说来惭愧,这么多年虽然一直自称.NET铁杆粉丝,然仅限于回几个不痛不痒的贴,既没有发布过代码,也没有写过文章. 看着.NET和C#在国外风生水起,国内却日趋没落,我也早觉得有写一点东西的必要了. 二. 为什么要开源,它能做什么 开源是大势所趋 现在已经不是兜售软件光盘卖授权的时代了.我自己开发这套系统也得益于开源. 起因是因为看到单位用的组态软件被版权问题困扰,同时系统十分庞大,动辄几个G,安装部署调试都不方便,同时脚本功能和扩展能力也有限. 开始就是自…
开源纯C#工控网关+组态软件(二)工控网关的实现
一. 工控网关是什么 网关是物联网和工控系统的核心组件.网关起的是承上启下的作用.上即上位机,电脑/触屏监控系统.MES这些:下即下位机,包括PLC.传感器.嵌入式芯片等. 不同厂家的下位机,往往讲的是不同的语言,西门子的语言叫ProfiBus,施耐德的语言叫Modbus,AB的语言叫Ethernet IP.在楼宇自控领域,又有BACnet .. 网关要担当沟通上.下位机的重任,它的基本功能就是翻译,即协议转换.管你说哪种方言,最后转给上位机的都是普通话. 二. 如何实现软网关:启下 网…
开源纯C#工控网关+组态软件(七)数据采集与归档
一. 引子 在当前自动化.信息化.智能化的时代背景下,数据的作用日渐凸显.而工业发展到如今,科技含量和自动化水平均显著提高,但对数据的采集.利用才开始起步. 对工业企业而言,数据采集日益受到重视,主要应用场景包括: 节能降耗.投入(如车间的水电气能耗.设备工时.原料耗用)和产出(产量.批数)这些成本核算的关键数据通过传感器采集,取代人工抄表已成为趋势. 绩效考评.投入.产出.损耗.工时数据,其对管理者的决策支持.对员工的绩效评估都很重要. 批次追溯.食品安全形势日益严峻,对物料的追溯也成为国…
开源纯C#工控网关+组态软件(九)定制Visual Studio
一. 引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的. 大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技,如果用好,VS可以打造为你专用的神兵利器. 为什么我要扩展Visual Studio的界面设计器?当时我在设计组态软件的时候面临最大的困难大概就是设计器了.一套成熟的组态设计器包括:界面设计器(包括工具栏.设计器.属性管理器).脚本编辑器(各种语法高亮.语法检查.自动完成等等等等).编译(解释)器…
开源纯C#工控网关+组态软件(十)移植到.NET Core
一. 引子 写这个开源系列已经十来篇了.自从十年前注册博客园以来,关注了张善友.老赵.xiaotie.深蓝色右手等一众大牛,也围观了逗比的吉日嘎啦.精密顽石等形形色色的园友.然而整整十年一篇文章都没有写过,属于非常努力的在社区汲取营养的菜青虫一只,现在也算破茧而出了,虽然远没有得道化蝶的境界,也在写作过程中得到不少提升.我开源的这个项目也有我固有的不良代码风格:严重缺乏注释,一方面是懒,一方面因为是单兵作战,也未曾想过让别人理解自己的代码.如何用简洁明了的方式表达自己的思路,虽然烧脑,但得到…
开源纯C#工控网关+组态软件(五)从网关到人机界面
一. 引子 之前都在讲网关,不少网友关注如何实现界面.想了解下位机变量变化,是怎样一步步触发人机界面动画的. 这个步步触发,实质上是变量组(Group)的批量数据变化(DataChange)事件,引发了变量(Tag)的值更新(ValueChange)事件,最终触发了图元的动画脚本(Action).这是一个连锁反应. 简言之,界面是一批叫Tag乘客,从网关坐TLV协议的列车,到了上位机车站下车,在ClientService这个舞台上,用各自的乐器(ITagReader)演奏了一出交响乐. 二.…
开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7
一. 引子 首先感谢博客园:第一篇文章.第一个开源项目,算是旗开得胜.可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^. 园友给了我很多支持,并提出了很好的改进意见.现加入屏幕分辨率自适应和OPC Server可CLSID和ProgID自适应加载功能.屏幕自适应本是普遍问题,因为之前都是标配硬件,举手之劳,一懒就忽略了. 仅仅十天前,我还是上github只会点击的菜鸟.Readme文件如何编辑都是现学现卖. 第一次向github上传仓库,下载了发现居然没有任何exe,dll,ba…
开源纯C#工控网关+组态软件(四)上下位机通讯原理
一. 网关的功能:承上启下 最近有点忙,更新慢了.感谢园友们给予的支持,现在github上已经有.目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下. 下位机有下位机的语言,上位机有上位机的思路.网关就是一个翻译,把下位机的语言转成通用语,再告诉上位机该怎么做. 这个翻译的过程,应该保证: 实时性.如果太慢,上下位机明显不合拍,就会出问题. 精确性.信号不能频繁丢失.丢步.跳步:不能有太大误差:也不会带入太多干扰和噪音. 稳定性.如发生故障,如通讯…
开源纯C#工控网关+组态软件(六)图元组件
一. 图元概述 图元是构成人机界面的基本单元.如一个个的电机.设备.数据显示.仪表盘,都是图元.构建人机界面的过程就是铺排.挪移.定位图元的过程. 图元设计是绘图和编码的结合.因为图元不仅有显示和动画,还有背后操纵动画的控制逻辑. 一个好的图元设计框架,应该最大限度提高设计的效率和专业程度. 因为你找到一个会做美工的码农,和会写代码的美工,都很困难,但是单独找码农和绘图员却一抓一大把.所以专业性意味着用人的灵活性,和省钱.而你招来一个美工,一个码农,合作完成一个图元组件,必须考虑减少两人的交…