PLC代码转换过程
本帖最后由 zzsczz 于 2014-11-26 16:28 编辑PLC代码转换过程
PLC是工业计算机,主要用于替换继电器逻辑电路,主要编程语言是梯形图(LAD logic programming language ,简称LAD),从开发人员角度,抽象的看PLC代码开发过程如图 1所示。
以AMOBBS论坛发布的 “简易PLC 梯型图 解释型监控 示范程序 测试版(51)----直接使用三菱FXGPWIN软件!”为例,代码的可视化表现资源使用三菱FXGPWIN程序,可编译代码是三菱的梯形图文件,编译后的代码格式是C语言文件,处理设备是带ISP功能的51单片机。从代码的角度来讲,明显是编译型么。
还有西门子的S7-300及其兼容系列,代码的可视化表现资源主要是西门子的S7-LAD,可编译代码格式是西门子的S7-STL,编译后代码格式是S7-BLOCK,处理设备么有好几种,比如英飞凌的C166,TriCore,惠朋的带S7处理功能的 ARM9(ASIC或者SOC),可以算解释型。
简单点的比如《自装可编程逻辑控制器》,代码的可视化表现资源使用梯形图,可编译代码是指令表,编译后的代码格式是51汇编代码,处理设备是8051单片机。
开源的项目有CPDev以及Beremiz,都是很有特点的。CPDev还设计了面向IEC61131的专用虚拟机及其指令VMASM。
部分资料见表 1,不是很全了,疏漏之处请大家补全。解释型的PLC也有编译器把源代码转化为中间代码,至于纯脚本解释型PLC就不是很清楚了(基恩士的是不是?)。
提供商 可视化表现资源 可编译代码格式编译后的代码格式 处理设备
ourDEV AMOBBS开源PLC 三菱LAD三菱STL C MPC82G516
西门子的S7-300系列 S7-LAD S7-STL S7-BLOCK C166,TriCore,ASIC
《自装可编程控制器》 梯形图 指令表 51 ASM 8031兼容MCU
codesys IEC61131-3IEC61131-3C 很多MCU
Beremiz XML IEC61131-3FB LD SFC ST IL SFC C 很多MCU
CPDev IEC61131-3FB ST VMASM VM written by C ;FPGAAVR ARM X86 .NET
FPGA-based Execution Platform for IEC 61131-3 Control Software
沙发,这个要多学学。 Beremiz谁玩起来啦? 沒懂,什么意思。 本帖最后由 zzsczz 于 2014-11-26 20:42 编辑
kafeiwutang 发表于 2014-11-26 18:09
沒懂,什么意思。
意思就是 电气工程师使用plc
而设计PLC需要计算机专业人员 , 软件涉及到 编译器设计 , cpu或者SOC设计(用现成的也要了解), 虚拟机设计和实现,实时操作系统(前后台的裸奔系统很古老了) ;硬件么,信号完整性,EMC测试,成本控制等等
这些 每个方面的实现做深了都要花费大量资源 做 测试和验证,更别谈规范的设计了
又开始搞plc了 Ilidan 发表于 2014-11-26 21:30
又开始搞plc了
还有些路没走过的
楼主准备自制PLC吗 zzsczz 发表于 2014-11-26 18:50
意思就是 电气工程师使用plc
而设计PLC需要计算机专业人员 , 软件涉及到 编译器设计 , cpu或者S ...
我就使用plc的,沒懂的是你发这个做什么,不是你说的那些。你说的那些,不敢说懂只能说都知道一些。
dcl_yufeimen 发表于 2014-11-26 22:15
楼主准备自制PLC吗
先做个参考平台吧,写写文档什么的
本帖最后由 zzsczz 于 2014-11-27 10:16 编辑
kafeiwutang 发表于 2014-11-26 22:45
我就使用plc的,沒懂的是你发这个做什么,不是你说的那些。你说的那些,不敢说懂只能说都知道一些。
...
在淘宝上搜索“PLC 可编程控制器”,按销量排序,第一屏 大把大把的 三菱(估计也有AMOBBS的功劳),还有个把汇川和台达,第二屏出现了LG 欧姆龙 西门子。ourDEV/AMOBBS开源PLC选的方案,是有市场需要的。至于按销售额排序,估计得生孩子没菊花的马云(我对 阿里巴巴 老大没有什么偏见,顶多就是嫉妒一下 , 前面的字符是坛子加的,怎么删也删不掉,真的)。
兼容三菱者条路已经被踩烂了(好不好是另外一回事),看看西家的产品。 S7-200系列已经专供国内了,国内的兼容(有西门子授权)和寨货(无西门子授权)品种也有,坛子里的会员csca1也在做这方面的工作(做了2年了)。至于S7-300系列的产品,普通产品有在国内生产的,低端系列也有国内厂商生产兼容产品(貌似采用惠朋VIPA的芯片),但高端系列(比如安全型)还依赖进口。
再整一次开源PLC,可以选择兼容S7-300系列的方案,毕竟很少有人做,若担心侵权问题,只要做到SCL以及STL源代码级别的 兼容即可(需要实现编译器), 编译后BLOCK的二进制格式可以重新制定(还可以设计格式转换工具,那么STEP7 BLOCK的遗产都可以继承了)。或者做到 和 STEP7 BLOCK 二进制 兼容,重新实现虚拟机和运行库支持。已经有人做了一些工作,比如 http://sourceforge.net/projects/step7dbtoexcel/还有 http://sourceforge.net/projects/s7dataarchiver/ ,可以把STEP7 BLOCK中的数据文件提取了。至于STEP7 BLOCK中的代码,花时间去啃就可以啦。
2种方法
一 设计编译后BLOCK的二进制格式,设计及实现SCL以及STL源代码到自定义BLOCK编译器, 设计及实现自定义BLOCK的虚拟机及运行库;
二或者实现兼容STEP7 BLOCK 的虚拟机及运行库,兼容西门子的 STEP7工具 。
第二种方法工作量小些,有第三方公司做了些工作
比如http://www.esa-at.at/en/wp-content/uploads/sites/2/2014/07/IBHBrochure.pdf
我们这要搞一个流水线工艺改进项目(产线自用,不批量生产外供),本来用PLC,但是要外包,成本较高。昨天项目组找我问能不能用单片机来做,我没搞过PLC。不太清楚,请问楼主像这种流水线能用单片机实现吗?就是物料过来后,探测器探测感应,然后控制气缸实现相应的机械动作,大概也是继电器之类的。整体不是很复杂。不清楚PLC和单片机的区别,所以来这里问问,谢谢。 本帖最后由 zzsczz 于 2014-11-27 11:26 编辑
jzkn 发表于 2014-11-27 10:51
我们这要搞一个流水线工艺改进项目(产线自用,不批量生产外供),本来用PLC,但是要外包,成本较高。昨天 ...
j大,你怎么混成金牌会员的。。。。。
不懂 PLC单片机 的区别,还拍板, 项目组给你上眼药么? 组长拖出去打靶。 单片机做成PLC的稳定度,物料成本花费不会比买的PLC少多少,时间人员花费更多
多大规模的线?周期多长?资金和组员多少(资金和能力挂钩吧,差不了太远)? 有没有洋垃圾可以淘一下,又便宜又好用。。。。
你真想搞 ,可以咨询会员 zxqwork那种 的 http://www.amobbs.com/space-uid-29881.html 靠谱些。。。。
这个贴的成果估计得等几年才有得玩 单片机做工程 、工艺是曾经淘汰的方式,工业应用上被plc取代了的 smithding 发表于 2014-11-27 11:03
单片机做工程 、工艺是曾经淘汰的方式,工业应用上被plc取代了的
看什么工程工艺了 单片机 在 消费电子 还是有市场的
生产自动化么 , 预算太多了 ,稳定第一 zzsczz 发表于 2014-11-27 11:01
j大,你怎么混成金牌会员的。。。。。
不懂 PLC单片机 的区别,还拍板, 项目组给你上眼药么? ...
没事,很小的线,没几米长!我回头给他们说说,有现成的板子先试试,不行再PLC。
内地小厂,没有那么严格,随便整,呵呵。 国内PLC市场是很大的,如果能DIY兼容S7-300,不愁销路的 jzkn 发表于 2014-11-27 11:21
没事,很小的线,没几米长!我回头给他们说说,有现成的板子先试试,不行再PLC。
内地小厂,没有那么严格 ...
个人感觉木有问题 vc9181 发表于 2014-11-27 20:50
个人感觉木有问题
个人感觉问题大了 kafeiwutang 发表于 2014-11-27 21:21
个人感觉问题大了
哪里大了? 谢谢分享,mark lushanlq 发表于 2014-11-27 20:07
国内PLC市场是很大的,如果能DIY兼容S7-300,不愁销路的
S7-300系列的产品,普通产品有在国内生产的,低端系列也有国内厂商生产兼容产品(貌似采用惠朋VIPA的芯片),但高端系列(比如安全型)还依赖进口。欧盟会控制技术的扩散,生产力是源泉,不会白给的
DIY兼容S7-300,看兼容到哪个地步了,SCL 与STL级别的兼容 ,努力是可以达到的 ;STEP7 BLOCK 运行代码 二进制级别的兼容 , 努力也是可以达到的。做到这2个层次,可以继承S7BLOCK的遗产
至于直接 在STEP7下使用,很天真的想法,软件太复杂; 可行的方案是拿出合适的产品然后加入S7生态圈,成为像 VIPA 或者IBHsoftec那样的成员 ,( 估计西门子不会同意的,国内企业进入会直接玩废掉STEP7 生态圈 )
相比之下,拿出比西门子更高效的方案可能性大些,这个工作量是很大的,毕竟西门子也在进步,是为2次世界大战都提供过装备的公司(虽然都没能打赢);当能够挤掉STEP7 的时候,估计国内企业在各个方面 提供 的产品 都能压制欧盟相应的产品 收藏了,值得看看………… zzsczz 发表于 2014-11-27 22:20
S7-300系列的产品,普通产品有在国内生产的,低端系列也有国内厂商生产兼容产品(貌似采用惠朋VIPA的芯片 ...
深圳合信好像就可以生产兼容S7-300的CPU模块,号称是全兼容的, jungleyang 发表于 2014-11-28 12:29
深圳合信好像就可以生产兼容S7-300的CPU模块,号称是全兼容的,
国内西门子授权的厂家上海正航 有 S7-200兼容产品 ,还有 softlink 有 s7-300的低端兼容CPU(规格真的很低) ,其它不是很清楚; 价格和西家同规格的差不了多少的
合信 有 S7-200 兼容的 CPU 产品 ;S7-300的,只有模块没有CPU吧 , 有也不能白天卖吧
西门子起诉过对非授权的 企业,败诉了(相比之下微软V587) , s7-200市场已经烂掉了(就算不被仿制 也会被 山寨三菱 淹没)
护企业的是商业秘密,是先进的生产力
多谢楼主的分享 mark 学习!!! 下载学习下,解释型是不是是梯形图编译的文件只有PLC内置的程序才能驱动出来? xiatao1800 发表于 2015-1-28 16:36
下载学习下,解释型是不是是梯形图编译的文件只有PLC内置的程序才能驱动出来? ...
看具体机型吧
比如 西门子的 s7-300系列, 梯形图 可转换为 指令表,存储格式是s7-block ,可以在软件虚拟机 (PLCSIM ) 中执行
还有的PLC把梯形图转换为C 语言,再编译成机器码;这时候 有虚拟机 仿真器也可以运行啊 梯形图比代码直观了很多,但复杂逻辑梯形图阅读也挺困难,我总觉得的应该有比梯形图更直观的设计方式出来 McuPlayer 发表于 2015-1-28 20:59
梯形图比代码直观了很多,但复杂逻辑梯形图阅读也挺困难,我总觉得的应该有比梯形图更直观的设计方式出来 ...
梯形图 是給 熟悉繼電器邏輯的電氣工程師使用的
至於複雜 的梯形圖,滿足工藝要求 即可
還有結構化 文本什麼的 ,適合軟件 開發 人員 使用
再 高效的 設計 方式, 沒有 人 用 也 白搭 ,若 沒有 顯著 優勢 ,兼容 現有 標準 和產品是最 有 效 的 設計方式 zzsczz 发表于 2015-1-28 20:09
看具体机型吧
“还有的PLC把梯形图转换为C 语言,再编译成机器码”这样的PLC里面有程序吗?
是不是我仿制了它硬件,然后把机器码下载进去就可以工作了吗? xiatao1800 发表于 2015-1-29 15:10
“还有的PLC把梯形图转换为C 语言,再编译成机器码”这样的PLC里面有程序吗?
是不是我仿制了它硬件, ...
自己玩怎么都行
商业化 的话 , 拿不上 台面的
也有逆向工程 实现“克隆” 设计的 (比如VIPA 公司 ),但没有授权 ,兼容性 是 有问题的
硬件 只占 小部分工作量 ,配套 软件 、库 标准 等等 是大头 本帖最后由 twitter 于 2015-1-29 17:49 编辑
其实没必要考虑兼容S7 Block的存储结构的,既然做的东西都不打算兼容Step7开发软件的话,只要采用它的块管理方式思想就够了。
直接从SCL语法起步(类PASCAL的,它的语法结构也比较严格),做编译器、调试器、虚拟机,这些都做出来了,那么类似PLCSIM这样的PC软件也就容易多了。对于中型以上PLC,结构化语言是必然的趋势,梯形图会用得越来越少的。 twitter 发表于 2015-1-29 17:46
其实没必要考虑兼容S7 Block的存储结构的,既然做的东西都不打算兼容Step7开发软件的话,只要采用它的块管 ...
可以考虑兼容到step7V5.4 V5.5
再 整一套自用的固件和开发工具 / 库
VIPA是 如此
国内 的x航x信的 200系列 也是如此,有兼容step7 microwin 的产品线 ,也有自用的 开发环境 本帖最后由 twitter 于 2015-1-29 22:13 编辑
搞开源不是等于不用管版权和专利的,与其做一个各方面都被原型限制的山寨300,做出来后只能被淘宝上一堆山寨厂商做烂掉,不如只参考语法风格,独立设计。
而且个人的精力是有限的,能做完一套命令行编译器、调试器和目标机的虚拟机,已经是大工程了。
IDE这种东西,留给其他更擅长这方面的人去做,就算暂时没有,也可以用开源编辑器加自己的命令行工具顶着,完善接口才是重要的。 国产还是仿制这条路 没大多戏!
还是走标准化这条路吧, IEC61131
突然觉得有FPGA直接解析PLC指令,类似IP核.有点味道 wurst 发表于 2015-2-1 18:46
国产还是仿制这条路 没大多戏!
还是走标准化这条路吧, IEC61131
标准还不是 欧美几个大公司在一起搓麻将搓出来的, 逆向设计没戏的话 符合标准 更没戏
就说IEC61131-3 吧,各个IEC61131-3 编译器把 IEC61131-3 的IL(指令表)转换为 C代码(如CODESYS,Beremiz)或者其它中间代码(如CPDev)编译。IEC61131-3 缺乏其语言的 处理器 (不管是虚拟的还是实际的) 相关规范,这不是假大空是什么? 符合 IEC61131-3 标准 唯一收益方是 公司的老板,省去了代码设计培训费;但实际硬件平台还需要学习操作以及专有库使用。
相比之下 , S7BLOCK 的 STL(指令表)是 可以被 某种 处理器执行 (硬件执行 或者 虚拟机 执行)的 ,其规范完整度要完善得多
这个CPDev,不知道楼主哪那里有没有下载到?哪个网站死活也注册不了,不知道楼主怎么下的? 这个要好好研读。。。扫一眼还真看不懂 CPDev是开源软件吗?
页:
[1]