软PLC组件

软件环境

  • PLC程序IDE,方便开发人员编写和调试程序的人机界面,支持多种语言的开发。可选的开源项目:
  • PLCEdit:完全按照IEC61131标准开发,所有五种语言均支持,使用Python开发,故可以做到跨平台。
  • Beremiz:一套完整的开源PLC解决方案,不过放在这里主要是因为它不但使用了上面说的PLCEdit,同时还对其进行了增强,使得其增加了重要的在线调试功能。
  • SoapBox Snap:使用C#+WPF开发的,仅支持梯形图一种语言,不过却已经支持了在线调试功能,含模拟器。
  • 我的解决方案:我使用了Node.js+HTML5开发,仅支持梯形图一种语言,不支持在线调试,使用HTML5方案最大的优势有两点,一是适应未来发展需要,二是类似于家用路由器一样,可以将网页嵌入到设备中,故只要一台能浏览HTML5网页的浏览器便可以配置PLC。

按照工业控制领域常用的IEC61131-3标准来看,工业控制领域程序语言被分为了两大类五种语言,两大类是指图形化编程和代码编程,图形化编程中有Ladder(梯形图),FBD(Function Block Diagram,功能块图)和SFC(Sequential Function Chart,序列功能表),而代码编程有IL(Instruction List,指令集)和ST(Structured Text,结构化文本),具体内容我就不展开了,有需要自行百度百科或维基百科。

  • HMI设计器,Human-machine interface,即人机界面,主要用来显示控制过程中的实时数据,并设置一些按键方便操作员快速控制系统。可选方案:
  • Beremiz:使用SVG技术开发,样式可扩展性强,但是逻辑扩展性弱。
  • 我的解决方案:使用HTML5技术开发,不但有丰富的开源编辑器可供选用,而且用户可以自行嵌入JS逻辑。
  • 编译器,顾名思义,就是将在IDE环境中编写好的程序转换成可以直接运行在单片机上的二进制序列。可选的开源项目:
  • mat:最全面的开源编译器,输入符合其标准的定义文件,并可以支持IL和ST两种文本语言。使用纯C开发,大量使用了宏定义,导致我看代码看得挺吃力的。
  • Avrian-Jump:一个非常初级的梯形图编辑器,并可以将该梯形图转译成ATMega168的二进制程序,使用js开发,直接在网页上操作。
  • 我的解决方案:我的初版解决方案是使用C#语言通过正则表达式识别代码并转成可供执行的Python代码。后来将正则表达式的方式改为Coco/R,即专门的编译器生成器。
  • 其他必要的类库或驱动,通常情况主要就是IO的驱动,以及通信的协议栈,当然还不能缺少基本的供开发人员调用的类库。很多时候都是内嵌在编译器中,或者提供足够的灵活性让用户自行开发。

我的解决方案:使用虚拟机运行Linux模拟,以及使用RaspberryPi这类支持运行Linux和Python的环境。

自己动手做一个PLC 软PLC相关推荐

  1. python可以plc编程_自己动手做一个PLC

    我们自己来做一个PLC(Programmable Logic Controller,即可编程逻辑控制器)怎么样?就像很多计算机专业的同学都自己写过最简单的操作系统一样,作为工控领域的软件人,怎么能不自 ...

  2. 自动化控制编程软件(PLC/软PLC/Labviw/C#)特点

    一.PLC 什么是PLC:PLC就是可编程控制器,是一种数字运算操作的电子系统,专为工业环境而设计.它采用了可编程序的存储器,用来在其内部存储逻辑运算.顺序控制.定时.计数和算术运算等操作的基于用户的 ...

  3. 直播网站源码直播平台软件开发iOS动手做一个直播(原理篇)

    直播网站源码直播平台软件开发iOS动手做一个直播(原理篇) 上篇文章主要给出了代码,但是并没有详细说明直播相关的知识,这篇文章就说一下直播的相关理论知识.附上直播代码篇地址. ###推流 腾讯直播平台 ...

  4. 开关面板如何自己印字_如何自己动手做一个智能开关

    现在的智能家居这么火,对于想自己动手的小伙伴们来说,都想自己去做一些家里使用 的智设备.现在的中国不缺卖唱卖惨的,缺的是能动手创造一些能实际使用的而不是哗众取宠的人,天天喊着要反击外国技术封锁.那么我 ...

  5. iOS动手做一个直播app开发(代码篇)

    iOS动手做一个直播app开发(代码篇) ###开篇 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量都不错的文 ...

  6. 做自己的PHP语法解释器,PHP语言之自己动手做一个SQL解释器

    本文主要向大家介绍了PHP语言之自己动手做一个SQL解释器,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 这是从别的地方看到的,俺还不会写这么无聊的东西 class DB_text { ...

  7. 自己动手做一个小爱同学温湿度传感器(成本八块左右)

    自己动手做一个小爱同学温湿度传感器 1.开发环境简介 2.开发思路 3.程序编写 (1)将点灯科技库文件和DHT11模块库文件导入Arduino的libraries文件夹. (2)下载点灯科技APP, ...

  8. 动手做一个简单的智能小车

    动手做一个简单的智能小车 来到CNDN一年了,看到了许多大佬的杰出作品.也该写点什么来回馈给大家了前不久接触了单片机,想提前进行实践一下所以有想法做一个实体出来,想来想去难的怕自己搞不定,但是还好找到 ...

  9. arduino智能浇花系统_解放双手!自己动手做一个简易智能浇花系统

    原标题:解放双手!自己动手做一个简易智能浇花系统 面对疫情,宅在家的我们可以以各种方式为战"疫"一线的医护工作者.紧急研究病毒的科研人员.口罩厂日夜工作的人们......加油打气. ...

  10. 动手做一个自组网的网络 - 操作系统内核

    动手做一个自组网的网络 - 操作系统内核 动手做一个自组网的网络 - 项目介绍 动手做一个自组网的网络 - 硬件开发板 动手做一个自组网的网络 - 操作系统内核 动手做一个自组网的网络 - 网络协议栈 ...

最新文章

  1. a按钮居中显示 bootstrap_Excel合并后居中,跨越合并,及跨列居中的区别你都知道吗...
  2. 【学习笔记】16、常用内置函数(Built-in Functions)
  3. 【小代码讲解】独热编码(One-Hot编码)
  4. ios逆向小试牛刀之操作手记
  5. shell脚本开发总结
  6. OpenCV学习笔记之 ( 三 ) MFC显示Mat图片
  7. android 在什么情况下会主动gc_Python 什么情况下会生成 pyc 文件?
  8. UNIX网络编程:I/O复用技术(select、poll、epoll)
  9. java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用
  10. SCCM 2007 R2 报表问题(二)
  11. 1067. Sort with Swap(0,*)
  12. 用ultraiso安装linux系统教程,使用UltraISO制作ubuntu安装u盘启动盘图文教程
  13. 小米4充不了电处理办法(图文)小米4不能充电的维修教程
  14. 保持健康和活力 - 腰间盘突出康复指南
  15. H5的Notification特性
  16. 爬取猫眼《长津湖》影评,分析观影群众信息,还进行了明日票房预测,好玩!...
  17. 硬件第四、五次培训——示波器、IIC、ADDA
  18. 阿里人事巨变!张建锋卸任 CTO,胡晓明任蚂蚁金服 CEO
  19. 深入delphi编程
  20. 倪光南:离岸外包收效不大 应大力发展嵌入式软件

热门文章

  1. 人工智能和5G在无人机技术中的作用
  2. 什么是应用分发?应用分发是什么?
  3. 如果有人问你数据库的原理,叫他看这篇文章(下)
  4. Mac 电脑下载 AppStore 中的 ipa 软件包详细流程
  5. 赣州旅游职业学校学计算机,赣州旅游职业学校是公办的吗
  6. .Net Micro Framework 嵌入式开发
  7. 超简单的位运算---再也不用担心看不懂题解了
  8. 应聘嵌入式软件工程师需要准备些什么?
  9. 跨境电商知识篇:平台与广告投放站之间的关系
  10. 画图取色小工具markman