一.   工控网关是什么 网关是物联网和工控系统的核心组件.网关起的是承上启下的作用.上即上位机,电脑/触屏监控系统.MES这些:下即下位机,包括PLC.传感器.嵌入式芯片等. 不同厂家的下位机,往往讲的是不同的语言,西门子的语言叫ProfiBus,施耐德的语言叫Modbus,AB的语言叫Ethernet IP.在楼宇自控领域,又有BACnet .. 网关要担当沟通上.下位机的重任,它的基本功能就是翻译,即协议转换.管你说哪种方言,最后转给上位机的都是普通话. 二.   如何实现软网关:启下 网…
一.   前言 在园子潜水也七八年了.说来惭愧,这么多年虽然一直自称.NET铁杆粉丝,然仅限于回几个不痛不痒的贴,既没有发布过代码,也没有写过文章. 看着.NET和C#在国外风生水起,国内却日趋没落,我也早觉得有写一点东西的必要了. 二.   为什么要开源,它能做什么 开源是大势所趋 现在已经不是兜售软件光盘卖授权的时代了.我自己开发这套系统也得益于开源. 起因是因为看到单位用的组态软件被版权问题困扰,同时系统十分庞大,动辄几个G,安装部署调试都不方便,同时脚本功能和扩展能力也有限. 开始就是自…
一.   引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning信号:但有些时候不会这么简单,比如温度计在温度高于50℃显示红色;某设备报警,可能是多个条件其中之一触发的结果:变量变化触发一系列连锁反应…如此种种.考虑到工控行业大部分技术人员并非计算机专业出身,如何能够用最少的编码解决各种复杂的变量-动画绑定问题,无疑要费一番心思. 二.   方案选型 针对变量…
一.   引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的.   大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技,如果用好,VS可以打造为你专用的神兵利器. 为什么我要扩展Visual Studio的界面设计器?当时我在设计组态软件的时候面临最大的困难大概就是设计器了.一套成熟的组态设计器包括:界面设计器(包括工具栏.设计器.属性管理器).脚本编辑器(各种语法高亮.语法检查.自动完成等等等等).编译(解释)器…
从加入红橡开始熟悉和使用易控(INSPEC)组态软件,值得赞扬的是INSPEC的开放性和对C#语言的支持,除此之外,便也没有感觉它与其他组态软件有太多优势,有人说INSPEC软件授权比国内其他同类的组态软件便宜,姑且认为这也是其中一强项吧. 海淘的东西好不好,得到货了拿到手里用过才知道,组态软件也是一个道理,作为一种开发工具,上手比较容易,具备一些开发经验的可以很快熟练,甚至“精通”.但是它作为一种组态开发工具软件,更多的还需要在实际项目开发过程中摸索,碰到石头伤着了会感到痛,因为害怕疼痛,所以…
一.   引子 在当前自动化.信息化.智能化的时代背景下,数据的作用日渐凸显.而工业发展到如今,科技含量和自动化水平均显著提高,但对数据的采集.利用才开始起步. 对工业企业而言,数据采集日益受到重视,主要应用场景包括: 节能降耗.投入(如车间的水电气能耗.设备工时.原料耗用)和产出(产量.批数)这些成本核算的关键数据通过传感器采集,取代人工抄表已成为趋势. 绩效考评.投入.产出.损耗.工时数据,其对管理者的决策支持.对员工的绩效评估都很重要. 批次追溯.食品安全形势日益严峻,对物料的追溯也成为国…
一.   引子 写这个开源系列已经十来篇了.自从十年前注册博客园以来,关注了张善友.老赵.xiaotie.深蓝色右手等一众大牛,也围观了逗比的吉日嘎啦.精密顽石等形形色色的园友.然而整整十年一篇文章都没有写过,属于非常努力的在社区汲取营养的菜青虫一只,现在也算破茧而出了,虽然远没有得道化蝶的境界,也在写作过程中得到不少提升.我开源的这个项目也有我固有的不良代码风格:严重缺乏注释,一方面是懒,一方面因为是单兵作战,也未曾想过让别人理解自己的代码.如何用简洁明了的方式表达自己的思路,虽然烧脑,但得到…
一.   引子 首先感谢博客园:第一篇文章.第一个开源项目,算是旗开得胜.可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^. 园友给了我很多支持,并提出了很好的改进意见.现加入屏幕分辨率自适应和OPC Server可CLSID和ProgID自适应加载功能.屏幕自适应本是普遍问题,因为之前都是标配硬件,举手之劳,一懒就忽略了. 仅仅十天前,我还是上github只会点击的菜鸟.Readme文件如何编辑都是现学现卖. 第一次向github上传仓库,下载了发现居然没有任何exe,dll,ba…
一.   网关的功能:承上启下 最近有点忙,更新慢了.感谢园友们给予的支持,现在github上已经有.目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下. 下位机有下位机的语言,上位机有上位机的思路.网关就是一个翻译,把下位机的语言转成通用语,再告诉上位机该怎么做. 这个翻译的过程,应该保证: 实时性.如果太慢,上下位机明显不合拍,就会出问题. 精确性.信号不能频繁丢失.丢步.跳步:不能有太大误差:也不会带入太多干扰和噪音. 稳定性.如发生故障,如通讯…
一.   图元概述 图元是构成人机界面的基本单元.如一个个的电机.设备.数据显示.仪表盘,都是图元.构建人机界面的过程就是铺排.挪移.定位图元的过程. 图元设计是绘图和编码的结合.因为图元不仅有显示和动画,还有背后操纵动画的控制逻辑. 一个好的图元设计框架,应该最大限度提高设计的效率和专业程度. 因为你找到一个会做美工的码农,和会写代码的美工,都很困难,但是单独找码农和绘图员却一抓一大把.所以专业性意味着用人的灵活性,和省钱.而你招来一个美工,一个码农,合作完成一个图元组件,必须考虑减少两人的交…
一.   引子 之前都在讲网关,不少网友关注如何实现界面.想了解下位机变量变化,是怎样一步步触发人机界面动画的. 这个步步触发,实质上是变量组(Group)的批量数据变化(DataChange)事件,引发了变量(Tag)的值更新(ValueChange)事件,最终触发了图元的动画脚本(Action).这是一个连锁反应. 简言之,界面是一批叫Tag乘客,从网关坐TLV协议的列车,到了上位机车站下车,在ClientService这个舞台上,用各自的乐器(ITagReader)演奏了一出交响乐. 二.…
PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发.开发者不用去学习那些没有用的脚本语言,借助Visual Studio对多语言的支持.比如:C#.VB.C++.F#.JS.J#.Python等.你只需要使用你最熟悉的那门语言,就可以对PCHMI进行复杂的二次开发.当然这不是PCHMI的初衷,作者已经将工业组态中最常用的功能进行了模块化封装.开发者只…
在我国自动化控制领域应用较广泛的工业自动化组态软件有Wonderware公司InTouch.西门子公司Wincc.GE公司iFix.国内也有一些传统组态软件厂商,使用的功能和形式基本上十分类似,受当时开发环境和组态软件框架的限制,也很难做较大的改变. 国内工业软件领域也有后起之秀,例如iNeuOS工业互联网操作系统,和传统组态软件相比有很大区别,主要体现在软件框架.应用功能.界面风格.高级信息化建设的扩展性.实时性及稳定性方面.下面我们主要聊聊国内外组态软件的大体情况. 1.InTouch   …
串口屏与触摸屏人机界面组态软件HMIMaker介绍 触摸屏人机界面组态软件HMIMaker,是一款基于ARM架构的嵌入式控制系统开发的嵌入式软件,专业应用于触摸屏的二级界面开发,具有单片机协议,modbus通讯协议,I2C通讯协议,西门子,三菱,台达,欧姆龙,信捷,永宏等PLC协议.组态软件具有绘图.操作按钮.位开关.指示灯.进度条.字符控件.数据监控.实时曲线.动态图片.用户与密码设置.可编程数据库等功能,支持支持离线和在线模拟,所见即所得,快速验证设计效果,方便设计和调试,大大减轻软件开发人…
在当前经济形势和市场环境下,中小企业面对萧条的消费市场,恶化的外部贸易环境,刚性支出高成本人工和生产要素,通货膨胀,隐性的腐化支出等各种因素的作用导致企业生存艰难,企业需要在各方面削减支出,拓展市场寻求增长点.制造业通过自动化技术提升生产设备的电气自动化水平,减少操作工人的岗位配置是趋势所向.计算机和PLC是电气自动化设备的核心,通常的做法是PLC+触摸屏或者PLC+计算机组态软件.PLC+触摸屏只能做一些简单的系统,因为触摸屏是嵌入式系统,存在一些限制,例如画质色彩分辨率都比较低,存储设备是内…
西门子 WinCC 组态软件 -- 概述 1.西门子WinCC各产品线及定位 WinCC是由SIEMENS(西门子)公司开发的SCADA(数据采集与监控)系统,能高效控制自动化过程,具有极强的开放性和系统稳定性.WinCC基于Windows平台,涵盖单用户系统.多用户系统直到由冗余.客户机/服务器和浏览器/服务器构架组成的复杂的分布式系统,在冶金.化工.印刷生产线等领域都有非常广泛的应用. 作为全球自动化巨头, 西门子针对不同规模的生产场景, 细分了多款产品投放市场. 如上图所示: 对于超大型/…
微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍 一.为什么会有 API Gateway 网关 随着微服务架构的流行,很多公司把原有的单体架构改造成了微服务架构. 第一步:拆分 微服务架构就是把一个大单体改造成一个一个小的应用.比如把一个电商网站,从单体改造成微服务架构,如下图: 改造成微服务后,用户通过 PC 和手机访问电商应用,都是调用后面的微服务 API,而且各自要调用多个后端 API 服务才能拿到需要的数据.业务量小的时候,…
微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍,介绍了为什么会有网关及以 Nginx 为基础的网关. 一.网关 zuul zuul 网关使用 java 语言开发,是 Netflix 公司出品的开源网关.它是 SpringCloud 的组件之一.zuul 有 2 个大的版本: zuul1:zuul1 wiki…
微软代码签名证书使用指南 http://www.wotrust.com/support/signcode_guide.htm 签名重要性:http://www.wotrust.com/FAQ/whySigning.htm 中国数字认证网 http://www.ca365.com/ SSL开放论坛 » 软件代码签名 http://www.openssl.com.cn/forum-22-1.html http://www.cnblogs.com/babyt/ 给控件做数字签名之一:将控件打包为Web…
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源热更新 Android热更新开源项目Tinker源码解析系类之三:so热更新 转载请标明本文来源:http://www.cnblogs…
Dev控件GridView单元格绑定控件 //文本按钮 RepositoryItemButtonEdit btnFields = new RepositoryItemButtonEdit();//创建控件 btnFields.ButtonClick += new DevExpress.XtraEditors.Controls.ButtonPressedEventHandler(btnField_ButtonClick);//事件绑定 gridView1.Columns["Fields"…
一.简单控件 1.Label(作用:显示文字) Web中: <asp:Label ID="Label1" runat="server" Text="Label" BorderColor="Black" BorderStyle="Solid" BorderWidth="5px"></asp:Label> 编译完成后的元素时span(html) <span id…
一.窗体的事件 每一个窗体都有一个事件,这个窗体加载完成之后执行哪一段代码 位置:1)右键属性→事件→load 双击进入 2)双击窗体任意一个位置进入 删除事件:先将事件页面里面的挂好的事件删除,再删后台代码里面的事件 namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1()//构造方法 { InitializeComponent(); } private void Form1_…
ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示 为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己的优点和缺点.如果需要对数据进行操作,如果数据量不大的情况下,DataList和GridView是最好的选择,但是他们会生产额外的<table><tr><tbody><td>标签.如果只是罗列出来一些简单的数据,出于对性能的考虑,repeater必然是首选.当然…
一.说明 本文代码来源: <windows phone 7 程序设计> Charles Petzold 控件效果: 二.要点: 1.ItemControl.子项容器模板(ItemsControl.ItemsPanel)和子项模板(ItemsControl.ItemTemplate)             <ScrollViewer>                <ItemsControl ItemsSource="{Binding Students}"…
上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_CREATE中有控件创建的相关代码. if( uMsg == WM_CREATE ) { m_pm.Init(m_hWnd); //根据XML创建控件 CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T(, NULL, &m_pm…
Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); var bmp:TBitmap; jpg:TJPEGImage; FileName: string; begin bmp := TBitmap.Create; jpg := TJPEGImage.Create; FileName := ExtractFileDir(ParamStr())+'\jp…
功能:可以把某个asp.net 控件 替换成 自定义的控件 pages 的 tagMapping 元素(ASP.NET 设置架构) 定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型. 此元素是 .NET Framework 2.0 版中的新元素. <pages> <tagMapping> <add tagType= "System.Web.UI.WebControls.WebParts.WebPartManager" mappedTagT…
在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际上MFC的下层也是通过这些API完成的. 实际上控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类.既然控件实际上是窗口,当然也是用CreateWindow或者CreateWindowEx这个函数来完成的,第二个函数除了多一个扩展风格之外,其他完全…
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 作者:webabcd介绍重新想象 Windows 8 Store Apps 之 控件基础 DependencyProperty - 依赖属性 AttachedProperty - 附加属性 控件的继承…