自己动手做一个PLC 软PLC

软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的环境。

 

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值