万利开发板也可以当PLC玩--编译型PLC开发平台OpenLogic软件试用【恢复】
在以前的帖子中http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1534511&bbs_page_no=1&bbs_id=3007介绍了开发编译型PLC软件平台的构想,现在软件终于有了个样子,着急给大家看看,希望大家给点建议。编译型PLC开发平台-万利版ourdev_606669.rar(文件大小:6.12M) (原文件名:OpenLogic.rar)
一个小例子ourdev_606704.rar(文件大小:652字节) (原文件名:plctest.rar)
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:08:19. 梯形图编译的语句表是:
LD X0
OR X1
OUT Y2
OUT Y1
对应的C代码是什么:
__asm (
"movw r5, 0\n"
"movt r5, 0x2204\n"
"ldrb r6, \n"
"lsl r4, r4,#1\n"
"orr r4, r6\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x4\n"
"movt r5, 0x2204\n"
"ldrb r6, \n"
"orr r4, r6\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x1008\n"
"movt r5, 0x2204\n"
"tst r4, 0x1\n"
"ite eq\n"
"moveq r6, 0x0\n"
"movne r6, 0x1\n"
"strb r6, ,#0\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x1004\n"
"movt r5, 0x2204\n"
"tst r4, 0x1\n"
"ite eq\n"
"moveq r6, 0x0\n"
"movne r6, 0x1\n"
"strb r6, ,#0\n"
: : :"r4", "r5", "r6"
);
我是用嵌入式汇编做的
大家可以看到用汇编来做,每条指令的解析是很简单的。不过现在只实现了位指令
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:47:09. 软件还远没做完,对硬件和下位熟悉的朋友,我们可以一起做,我来做上位 呵呵 好东东啊! 三克油 不错,多谢了。 谢谢 xiaorunyi 萧润逸 的回复
软件花费了很多心血,希望大家支持,多批评 呵呵 谢谢。学习了OpenLogic。
有机会试试! 最后一步:检测是否成功。
如果成功的话,无论你按下KEY2 或者KEY3 LED2和LED3都会点亮,你要是成功了,一定要告诉我 第四步下载:
点击PLC=》设置通信参数。波特率选择19200
然后点连接。
这样就可以与PLC保持连接状态了。
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606786.jpg
(原文件名:link.jpg)
接下来点击下载按钮 进入如下状态
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606787.jpg
(原文件名:down.jpg)
下载成功后
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606788.jpg
(原文件名:downs.jpg)
选择是 PLC就会进入运行状态
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:41:15. 第二步:创建用户工程
我自己已经做好一个例子,大家先可以试验下。例子在第一楼里面。
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606729.jpg
(原文件名:example.jpg)
图中的KEY2 KEY3 就是对应的万利板子上的两个按键 LED2 LED3就是两个指示灯 代表PLC的输入输出。
具体的万利开发板和PLC的映射关系的是
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606744.jpg
(原文件名:map.jpg)
在例子中,大家可以点击工程树中的用户自定义符号表便可以查看
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:26:14. OpenLogic开发平台在万利开发板上的详细使用方法
第一步:烧写系统文件
硬件连接:将万利开发的串口1与电脑上的串口相连,BOOT1==0 BOOT0==1,按重启按钮,时间长点
烧写:点击软件菜单栏:工具->烧写系统文件
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606726.jpg
下载系统内核 (原文件名:system.jpg)
如果报任何错误,请检查连线,复位时间长点,重新试验下
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606727.jpg
烧写内核成功 (原文件名:systemsuccess.jpg)
成功之后,将BOOT0==0
这时候板子里就运行了一个内核 就是一个简单的PLC了
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:21:25. 第三步:编译
点击菜单栏中的编译选项下的=》生成二进制代码
可以生成一个BIN文件,这个就是我们生成的与工程对应的二进制文件
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606764.jpg
(原文件名:compile.jpg) 支持的指令:
http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606685.jpg
(原文件名:ppp.jpg)
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:01:05. OpenLogic开发平台已经实现的功能:
1) 系统烧写功能:
2) 梯形图编辑功能:
3) 编译功能:
4) 程序下载功能:
支持的指令:
暂时只支持指令库中的位指令。
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,21:47:21. OpenLogic开发平台到底能做什么?
简单的说OpenLogic在操作上类似于一般plc的上位开发平台,他的特点在于它的开放性。有了OpenLogic开发平台,就是可以基于一块mcu利用梯形图语言,开发出你想要的控制系统。详述功能如下:
1) 系统烧写功能:
单片机必须要下载一个系统文件plcsys.bin,单片机才会被虚拟化出很多资源,比如IO口,定时器,计数器,另外增加一些系统功能的易操作性。
2) 梯形图编辑功能:
程序编辑功能:程序分为主程序、子程序、中断程序。程序内部以网络做为单位。
3) 编译功能:
在用户看来,软件将梯形图转化成芯片可以执行的二进制代码。在软件内部,可分为三个过程 首先将用户编辑的梯形图转化成的语句表。然后将语句表转化为芯片可以识别的汇编代码,最后调用GCC编译器将其转化成二进制代码。
4) 程序下载功能:
在用户烧写系统文件之后,芯片就已经具有了PLC的功能,当用户编写好程序,并生成而进制代码之后,就可以通过上位软件与下位软件进行通信,将生成的二进制代码下载到芯片中去,这样你自己做的PLC就可以工作了。
5) 程序监控功能:
用户下载代码之后,运行PLC后。用户可以通过上位软件与下位软件进行通信,PLC的运行情况,比如:运行、停止PLC,读写PLC的位、字地址。 为什么开发OpenLogic开发平台
开发控制系统现在一般有两种方法,一种方法直接购买成型的控制器,比如工控机,PLC等等,另外一种方法就是直接购买芯片自己制版开发。
第一种方法技术简单,成功率高,但是也有如下缺点,价格比较高,成本要求高时,很难实行。另外直接购买控制器,因为是成品扩展性不好,因此常见到一个PLC上挂了很多扩展模块,造价进一步上升,且稳定性下降。
第二种方法硬件成本较低,可定制性好,但是也有如下缺点,芯片开发技术复杂,对开发者有很高的技术要求,人力成本上升,由于开发者能力层次不齐,可能会使项目失败或者延期。
如何更快更好的开发控制是我们值得好好研究的。
OpenLogic开发平台就是集中考量上述两种方法的优点和缺点,而设计出一个控制系统开发平台。 199的那种 这个忘了说了 呵呵 想问一下楼主,您这个万利板子是哪一种?是市场上卖的199元一块的?还是399一块的?谢谢 想问一下楼主,您这个万利板子是哪一种?是市场上卖的199元一块的?还是399一块的?谢谢 对PLC还没什么思路,组团参观。 应该是这样的 但是我处理语句表的时候 还是做了相应的处理的 没有做逻辑处理 那就是语法等错误都在编辑梯形图时已完成了,所转化的语句表程序是肯定无错的了,对吧?
本贴被 liuzq 编辑过,最后修改时间:2009-02-03,21:41:37. 是梯形图 语句表 C语言 内部有个过程 请教一下:
您现在的上位程序是将"梯列图"转化为语句表程序,再转化为*.c程序么?还是其它?3Q 不不不,要说"少见识"的应是我 关键在于能够准确快速 实现用户想要的功能,PLC不就是为了简单稳定吗,要不不如直接用单片机了
复杂点考虑加结构化文本 指令表转梯形图也是可以做的 只是觉得没必要 不知道大家是什么看法。很少看到有人用语句表编程,可能是少见识,呵呵 只不过,个人认为,PLC上位系统要做到算好,最好要能编译(处理)用象"记事本程序"那样的文
本编辑器编辑的"指令表语句"程序,就象C,pascal...程序一样,不知对不对!
本贴被 liuzq 编辑过,最后修改时间:2009-02-03,11:23:19. 是啊 语句表太难用了 ,我想用编译C语言编译器那样的方式来编译文本文件,可"指令表语句"的"文本文件"的自由度太大,现在连"产生式"都写不出来
本贴被 liuzq 编辑过,最后修改时间:2009-02-03,11:18:05. 是可以做到的,但是不打算让用户直接可以编辑语句表。考虑以后加个结构化文本。语句表太难用了。 嗯,很不错啊,
本软件是否可以在编译过程中检查"PLC指令表程序"的语法错误啊?如果可以的话,那真是完美的了
比如(这儿是针对的三菱系列的):
错 对
----------------------------------------------------
LD X0 LD X0
END OUT Y0
END
---------------------------------------------------
LD X0 LD X0
LD X1 LD X1
OUT Y0 ANB
END OUT Y0
END
甚至更多的变形形式
本贴被 liuzq 编辑过,最后修改时间:2009-02-03,11:13:55. jh 兄弟,你做的太棒了,有时间一定找你好好聊聊,呵呵 高手!牛 谢谢阿莫!幸苦了! 楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具? 楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具? 楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具? 楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具? 用了VC 和一些编译方面的知识 mark 楼主太强了,相当于开发了一个PLC,请问用的是什么单片机,不知道能不能提供一个硬件的电路图,谢谢 暂时都做的是软件部分 硬件下部在做不知道有没朋友 一起合作 哈哈 我对硬件比较熟悉一点,也许可以和楼主交流交流.
QQ:383842790
EMAIL:liheming@163.com
http://liheming.jimdo.com 强 对楼主很景仰。
手头刚好有万利开发板, 不知道plcsys.bin 是怎么设置系统的,有强烈的兴趣。 我上面发过下位的源代码 你可以看一下 比较简单
现在又增加了一些新的功能 C语言 定时器监控等完善点再传上来
谢谢你的关注。
有问题可以直接问我 呵呵 191177939QQ 套用一句台词:“对楼主的景仰,有如涛涛江水.连绵不绝”。 最新版的OpenLogic软件
支持:
位指令,传送指令,比较指令(包括浮点数比较)
数据运算(加减乘除),逻辑运算,移位指令,部分定时器,计数器暂不支持
程序控制指令(标号,跳转,调用子程序)
另外可以直接调用C语言编写的程序。
可以监控位地址 X Y M SM 字地址 W SW,暂不可强制
点击此处下载 ourdev_430356.rar(文件大小:12.95M) (原文件名:openlogic.rar) 楼主,可不可说说你的PLC解释程序 原理啊? 刚发现,很好学习,下文...? 过两天我传个新的上来 请问楼主,STM32F103RBT6的开发板能不能玩嵌入式PLC开发平台OpenLogic 需要根据开发板改一下下位机需要可以加我QQ我改一下发给你 mark mark 我试用了一下该软件,界面虽好看,但过于庞大、调用库过多,估计与恐龙般的MS开发工具有关。
更核心的问题是似乎没有编译原理的理论支持,使得指令支持数量太少,可扩展性太差。
我会在未来3个月用Delphi7开发一个集中了西门子Micro-win和Delphi优点界面的IDE,
使用编译原理的词法分析和语法分析,构造语法树,然后再根据不同的MCU指令,编译成为其Bin文件。
现在我正在做语法分析部分。
不要太小儿科,我们需要的是选择一个优秀的开发工具,深入理论研究,加上一颗坚挺的心! 回复【56楼】lissdd
我试用了一下该软件,界面虽好看,但过于庞大、调用库过多,估计与恐龙般的MS开发工具有关。
更核心的问题是似乎没有编译原理的理论支持,使得指令支持数量太少,可扩展性太差。
我会在未来3个月用Delphi7开发一个集中了西门子Micro-win和Delphi优点界面的IDE,
使用编译原理的词法分析和语法分析,构造语法树,然后再根据不同的MCU指令,编译成为其Bin文件。
现在我正在做语法分析部分。
不要太小儿科,我们需要的是选择一个优秀的开发工具,深入理论研究,加上一颗坚挺的心!
-----------------------------------------------------------------------
很傻很天真 虽然不懂但感觉很强大
顶起来 回复【42楼】 adolfshxq
暂时都做的是软件部分 硬件下部在做不知道有没朋友 一起合作 哈哈
---------------------------------------------------------------------------
可不可以直接由下位机来解释PLC代码? 回复【59楼】liurangzhou
可不可以直接由下位机来解释PLC代码?
-----------------------------------------------------------------------
现在是直接编译成bin文件下位机直接调用的速度较快
没有做成解释型的 mark mark,一直在用plc,一直想搞清楚。 学习了,支持! 这个要留意一下 请问这个软件怎样定义IO引脚呢 这个要留意一下 建议还是做成解析型的吧,现在大部分也都是解析型的,编译型的虽然实时响应速度快,但是,你开发的软件可移植性和适应性会很差,而且,现在的处理器速度不断提高,相对而言,解析型的速度已经足以胜任,无需复杂的编译型。做编译型,只会让你的路越走越窄的 谢谢各位 呵呵 记号! mark 很好啊 上传最新版本
ourdev_568886.rar(文件大小:6.14M) (原文件名:openlogic20100708.rar) 牛人啊,没用过plc的人对楼主的人品表示敬佩 编译型的不见得不好吧?
尤其现在的MCU差不多都支持ISP、IAP等。。
没用过这个开发板。。不知道万利的这个用的啥MCU。
持续关注中。。 mark 记号 mark 这么好的开源项目怎么暂停了!期待中。。。 mark 哪位同志有详细的使用说明呢?包括下位 I/O口怎么设置 楼主辛苦了 mark I/O口怎么设置?
楼主在吗? 记号,谢谢 回复【72楼】adolfshxq
-----------------------------------------------------------------------
楼主有用过PLC的另外一种编程语言FBD(功能块图)么? 开发板咱么搜不到?在哪里买到 国外也有类似的(开源)软件,但是英文的。c语言编的。http://cq.cx/ladder.pl mark 倒是希望有一款支持c语言的plc,,,,, 支持楼主的精神 可以自己做啊 来学习的,楼主牛人,正在一个一个看你的帖子。。。 l楼主谢谢了,想请帮忙开发。可以价我的QQ:153396615
页:
[1]