搜索
bottom↓
回复: 40

PLC代码转换过程

[复制链接]

出95入8汤圆

发表于 2014-11-26 16:28:11 | 显示全部楼层 |阅读模式
本帖最后由 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-3  C 很多MCU
Beremiz XML IEC61131-3  FB LD SFC ST IL SFC C 很多MCU
CPDev IEC61131-3  FB   ST VMASM VM written by C ;FPGA  AVR ARM X86 .NET



FPGA-based Execution Platform for IEC 61131-3 Control Software





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-11-26 16:51:13 | 显示全部楼层
沙发,这个要多学学。

出0入0汤圆

发表于 2014-11-26 16:56:19 | 显示全部楼层
Beremiz  谁玩起来啦?

出0入0汤圆

发表于 2014-11-26 18:09:39 | 显示全部楼层
沒懂,什么意思。

出95入8汤圆

 楼主| 发表于 2014-11-26 18:50:30 来自手机 | 显示全部楼层
本帖最后由 zzsczz 于 2014-11-26 20:42 编辑
kafeiwutang 发表于 2014-11-26 18:09
沒懂,什么意思。


意思就是   电气工程师使用plc

而设计PLC需要计算机专业人员 , 软件  涉及到 编译器设计 ,   cpu或者SOC设计(用现成的也要了解), 虚拟机设计和实现,实时操作系统(前后台的裸奔系统很古老了) ;硬件么,信号完整性,EMC测试,成本控制等等

这些 每个方面的实现做深了都要花费大量资源 做 测试和验证  ,更别谈规范的设计了


出0入0汤圆

发表于 2014-11-26 21:30:37 | 显示全部楼层
又开始搞plc了

出95入8汤圆

 楼主| 发表于 2014-11-26 22:04:49 | 显示全部楼层

还有些路没走过的

出0入0汤圆

发表于 2014-11-26 22:15:23 | 显示全部楼层
楼主准备自制PLC吗

出0入0汤圆

发表于 2014-11-26 22:45:22 | 显示全部楼层
zzsczz 发表于 2014-11-26 18:50
意思就是   电气工程师使用plc

而设计PLC需要计算机专业人员 , 软件  涉及到 编译器设计 ,   cpu或者S ...

我就使用plc的,沒懂的是你发这个做什么,不是你说的那些。你说的那些,不敢说懂只能说都知道一些。

出95入8汤圆

 楼主| 发表于 2014-11-26 22:58:12 来自手机 | 显示全部楼层
dcl_yufeimen 发表于 2014-11-26 22:15
楼主准备自制PLC吗

先做个参考平台吧,写写文档什么的

出95入8汤圆

 楼主| 发表于 2014-11-27 09:46:25 | 显示全部楼层
本帖最后由 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-conte ... /07/IBHBrochure.pdf



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-27 10:51:52 | 显示全部楼层
我们这要搞一个流水线工艺改进项目(产线自用,不批量生产外供),本来用PLC,但是要外包,成本较高。昨天项目组找我问能不能用单片机来做,我没搞过PLC。不太清楚,请问楼主像这种流水线能用单片机实现吗?就是物料过来后,探测器探测感应,然后控制气缸实现相应的机械动作,大概也是继电器之类的。整体不是很复杂。不清楚PLC和单片机的区别,所以来这里问问,谢谢。

出95入8汤圆

 楼主| 发表于 2014-11-27 11:01:15 | 显示全部楼层
本帖最后由 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   靠谱些。。。。


这个贴的成果估计得等几年才有得玩

出0入0汤圆

发表于 2014-11-27 11:03:43 | 显示全部楼层
单片机做工程 、工艺是曾经淘汰的方式,工业应用上被plc取代了的

出95入8汤圆

 楼主| 发表于 2014-11-27 11:10:11 | 显示全部楼层
smithding 发表于 2014-11-27 11:03
单片机做工程 、工艺是曾经淘汰的方式,工业应用上被plc取代了的

看什么工程工艺了     单片机 在 消费电子   还是有市场的

生产自动化么 , 预算太多了 ,稳定第一  

出0入0汤圆

发表于 2014-11-27 11:21:34 | 显示全部楼层
zzsczz 发表于 2014-11-27 11:01
j大,你怎么混成金牌会员的。。。。。

不懂 PLC  单片机 的区别,  还拍板,   项目组给你上眼药么?    ...

没事,很小的线,没几米长!我回头给他们说说,有现成的板子先试试,不行再PLC。
内地小厂,没有那么严格,随便整,呵呵。

出0入0汤圆

发表于 2014-11-27 20:07:09 | 显示全部楼层
国内PLC市场是很大的,如果能DIY兼容S7-300,不愁销路的

出0入0汤圆

发表于 2014-11-27 20:50:00 | 显示全部楼层
jzkn 发表于 2014-11-27 11:21
没事,很小的线,没几米长!我回头给他们说说,有现成的板子先试试,不行再PLC。
内地小厂,没有那么严格 ...

个人感觉木有问题

出0入0汤圆

发表于 2014-11-27 21:21:50 | 显示全部楼层
vc9181 发表于 2014-11-27 20:50
个人感觉木有问题

个人感觉问题大了

出0入0汤圆

发表于 2014-11-27 21:25:35 | 显示全部楼层

哪里大了?

出0入0汤圆

发表于 2014-11-27 21:29:01 | 显示全部楼层
谢谢分享,mark

出95入8汤圆

 楼主| 发表于 2014-11-27 22:20:08 | 显示全部楼层
lushanlq 发表于 2014-11-27 20:07
国内PLC市场是很大的,如果能DIY兼容S7-300,不愁销路的

S7-300系列的产品,普通产品有在国内生产的,低端系列也有国内厂商生产兼容产品(貌似采用惠朋VIPA的芯片),但高端系列(比如安全型)还依赖进口。欧盟会控制技术的扩散,生产力是源泉,不会白给的



DIY兼容S7-300,看兼容到哪个地步了,SCL 与  STL级别的兼容 ,努力是可以达到的 ;  STEP7 BLOCK     运行代码 二进制级别  的兼容 , 努力也是可以达到的。做到这2个层次,可以继承S7  BLOCK的遗产


至于直接 在  STEP7  下使用,很天真的想法,  软件太复杂;   可行的方案是拿出合适的产品然后加入S7生态圈,成为像 VIPA 或者  IBHsoftec那样的成员 ,( 估计西门子不会同意的,国内企业进入会直接玩废掉STEP7 生态圈 )



相比之下,拿出比西门子更高效的方案可能性大些,这个工作量是很大的,毕竟西门子也在进步,是为2次世界大战都提供过装备的公司(虽然都没能打赢)  ;  当能够挤掉STEP7 的时候,估计国内企业在各个方面 提供 的产品 都能压制欧盟相应的产品

出0入0汤圆

发表于 2014-11-27 23:43:49 | 显示全部楼层
收藏了,值得看看…………

出0入0汤圆

发表于 2014-11-28 12:29:19 | 显示全部楼层
zzsczz 发表于 2014-11-27 22:20
S7-300系列的产品,普通产品有在国内生产的,低端系列也有国内厂商生产兼容产品(貌似采用惠朋VIPA的芯片 ...

深圳合信好像就可以生产兼容S7-300的CPU模块,号称是全兼容的,

出95入8汤圆

 楼主| 发表于 2014-11-28 16:36:42 | 显示全部楼层
jungleyang 发表于 2014-11-28 12:29
深圳合信好像就可以生产兼容S7-300的CPU模块,号称是全兼容的,


国内西门子授权的厂家  上海正航 有 S7-200兼容产品 ,  还有 softlink 有 s7-300的低端兼容CPU(规格真的很低) ,其它不是很清楚; 价格和西家同规格的差不了多少的

合信 有 S7-200 兼容的 CPU 产品   ;  S7-300的,只有模块没有CPU吧 , 有也不能白天卖吧

西门子起诉过对非授权的 企业,败诉了(相比之下微软V587) , s7-200市场已经烂掉了(就算不被仿制 也会被 山寨三菱 淹没)  

护企业的是商业秘密,是先进的生产力

出0入0汤圆

发表于 2014-12-17 17:56:13 | 显示全部楼层
多谢楼主的分享

出0入0汤圆

发表于 2014-12-19 11:43:21 | 显示全部楼层
mark 学习!!!

出0入0汤圆

发表于 2015-1-28 16:36:40 | 显示全部楼层
下载学习下,解释型是不是是梯形图编译的文件只有PLC内置的程序才能驱动出来?

出95入8汤圆

 楼主| 发表于 2015-1-28 20:09:46 | 显示全部楼层
xiatao1800 发表于 2015-1-28 16:36
下载学习下,解释型是不是是梯形图编译的文件只有PLC内置的程序才能驱动出来? ...

看具体机型吧


比如 西门子  的 s7-300系列, 梯形图 可转换为 指令表  ,存储格式是s7-block ,可以在软件虚拟机 (PLCSIM ) 中执行




还有的PLC把梯形图  转换为C 语言,再编译成机器码;这时候 有虚拟机 仿真器  也可以运行啊

出0入0汤圆

发表于 2015-1-28 20:59:44 | 显示全部楼层
梯形图比代码直观了很多,但复杂逻辑梯形图阅读也挺困难,我总觉得的应该有比梯形图更直观的设计方式出来

出95入8汤圆

 楼主| 发表于 2015-1-29 12:52:19 | 显示全部楼层
McuPlayer 发表于 2015-1-28 20:59
梯形图比代码直观了很多,但复杂逻辑梯形图阅读也挺困难,我总觉得的应该有比梯形图更直观的设计方式出来 ...

梯形图 是  給   熟悉  繼電器  邏輯的  電氣工程師  使用的


至於  複雜 的  梯形圖  ,滿足  工藝  要求 即可  


還有  結構化 文本  什麼的 ,適合  軟件 開發 人員 使用


再 高效  的 設計 方式  , 沒有 人 用 也 白搭 ,  若 沒有 顯著 優勢 ,  兼容 現有 標準 和  產品  是  最 有 效 的 設計方式  

出0入0汤圆

发表于 2015-1-29 15:10:21 | 显示全部楼层

“还有的PLC把梯形图  转换为C 语言,再编译成机器码”这样的PLC里面有程序吗?
是不是我仿制了它硬件,然后把机器码下载进去就可以工作了吗?

出95入8汤圆

 楼主| 发表于 2015-1-29 16:19:26 | 显示全部楼层
xiatao1800 发表于 2015-1-29 15:10
“还有的PLC把梯形图  转换为C 语言,再编译成机器码”这样的PLC里面有程序吗?
是不是我仿制了它硬件, ...

自己玩怎么都行

商业化 的话 , 拿不上 台面的

也有  逆向工程 实现  “克隆” 设计的 (比如VIPA 公司 )  ,但没有授权 ,兼容性 是 有问题的   


硬件 只占 小部分工作量 ,配套 软件 、库   标准 等等 是大头

出0入0汤圆

发表于 2015-1-29 17:46:53 | 显示全部楼层
本帖最后由 twitter 于 2015-1-29 17:49 编辑

其实没必要考虑兼容S7 Block的存储结构的,既然做的东西都不打算兼容Step7开发软件的话,只要采用它的块管理方式思想就够了。
直接从SCL语法起步(类PASCAL的,它的语法结构也比较严格),做编译器、调试器、虚拟机,这些都做出来了,那么类似PLCSIM这样的PC软件也就容易多了。对于中型以上PLC,结构化语言是必然的趋势,梯形图会用得越来越少的。

出95入8汤圆

 楼主| 发表于 2015-1-29 21:17:44 | 显示全部楼层
twitter 发表于 2015-1-29 17:46
其实没必要考虑兼容S7 Block的存储结构的,既然做的东西都不打算兼容Step7开发软件的话,只要采用它的块管 ...

可以考虑  兼容到  step7  V5.4 V5.5

再 整一套  自用的  固件  和  开发工具 / 库

VIPA  是 如此

国内 的  x航  x信  的 200系列 也是如此,有兼容step7   microwin 的产品线 ,也有自用的 开发环境  

出0入0汤圆

发表于 2015-1-29 22:09:57 | 显示全部楼层
本帖最后由 twitter 于 2015-1-29 22:13 编辑

搞开源不是等于不用管版权和专利的,与其做一个各方面都被原型限制的山寨300,做出来后只能被淘宝上一堆山寨厂商做烂掉,不如只参考语法风格,独立设计。
而且个人的精力是有限的,能做完一套命令行编译器、调试器和目标机的虚拟机,已经是大工程了。
IDE这种东西,留给其他更擅长这方面的人去做,就算暂时没有,也可以用开源编辑器加自己的命令行工具顶着,完善接口才是重要的。

出0入0汤圆

发表于 2015-2-1 18:46:56 | 显示全部楼层
国产还是仿制这条路    没大多戏!

还是走标准化这条路吧, IEC61131

突然觉得有FPGA直接解析PLC指令,类似IP核.有点味道

出95入8汤圆

 楼主| 发表于 2015-2-2 20:16:26 | 显示全部楼层
wurst 发表于 2015-2-1 18:46
国产还是仿制这条路    没大多戏!

还是走标准化这条路吧, IEC61131

标准  还不是 欧美几个大公司在一起搓麻将搓出来的, 逆向设计没戏的话   符合标准 更没戏

就说IEC61131-3 吧,各个IEC61131-3 编译器把 IEC61131-3 的IL(指令表)  转换为 C代码(如CODESYS,Beremiz)或者其它中间代码(如CPDev)编译。IEC61131-3 缺乏  其语言的 处理器 (不管是虚拟的还是实际的) 相关规范,这不是假大空是什么? 符合 IEC61131-3 标准 唯一收益方是 公司的老板,省去了代码设计培训费;但实际硬件平台还需要学习操作以及专有库使用。

相比之下 , S7  BLOCK 的 STL(指令表)  是 可以被 某种 处理器执行 (硬件执行 或者 虚拟机 执行)的 ,其规范完整度要完善得多

出0入0汤圆

发表于 2015-2-5 19:51:11 | 显示全部楼层
这个CPDev,不知道楼主哪那里有没有下载到?哪个网站死活也注册不了,不知道楼主怎么下的?

出0入0汤圆

发表于 2017-4-19 14:10:02 | 显示全部楼层
这个要好好研读。。。扫一眼还真看不懂

出0入0汤圆

发表于 2017-10-26 17:35:50 | 显示全部楼层
CPDev是开源软件吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 09:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表