adolfshxq 发表于 2009-2-2 21:36:43

万利开发板也可以当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.

adolfshxq 发表于 2009-2-2 22:45:44

梯形图编译的语句表是:

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.

adolfshxq 发表于 2009-2-2 23:16:00

软件还远没做完,对硬件和下位熟悉的朋友,我们可以一起做,我来做上位 呵呵

caolong 发表于 2009-2-2 23:13:31

好东东啊! 三克油

TBN1 发表于 2009-2-2 22:55:55

不错,多谢了。

adolfshxq 发表于 2009-2-2 22:49:14

谢谢 xiaorunyi 萧润逸 的回复



软件花费了很多心血,希望大家支持,多批评 呵呵

xiaorunyi 发表于 2009-2-2 22:44:15

谢谢。学习了OpenLogic。



有机会试试!

adolfshxq 发表于 2009-2-2 22:42:59

最后一步:检测是否成功。

如果成功的话,无论你按下KEY2 或者KEY3 LED2和LED3都会点亮,你要是成功了,一定要告诉我

adolfshxq 发表于 2009-2-2 22:32:34

第四步下载:

点击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.

adolfshxq 发表于 2009-2-2 22:21:37

第二步:创建用户工程

我自己已经做好一个例子,大家先可以试验下。例子在第一楼里面。



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.

adolfshxq 发表于 2009-2-2 22:17:49

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.

adolfshxq 发表于 2009-2-2 22:30:48

第三步:编译

点击菜单栏中的编译选项下的=》生成二进制代码

可以生成一个BIN文件,这个就是我们生成的与工程对应的二进制文件

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606764.jpg

 (原文件名:compile.jpg) 

adolfshxq 发表于 2009-2-2 21:58:49

支持的指令:

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_606685.jpg

 (原文件名:ppp.jpg) 



本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:01:05.

adolfshxq 发表于 2009-2-2 21:44:59

OpenLogic开发平台已经实现的功能:

1)        系统烧写功能: 

2)        梯形图编辑功能: 

3)        编译功能: 

4)        程序下载功能: 

支持的指令:

暂时只支持指令库中的位指令。

本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,21:47:21.

adolfshxq 发表于 2009-2-2 21:41:10

OpenLogic开发平台到底能做什么?

简单的说OpenLogic在操作上类似于一般plc的上位开发平台,他的特点在于它的开放性。有了OpenLogic开发平台,就是可以基于一块mcu利用梯形图语言,开发出你想要的控制系统。详述功能如下:

1)        系统烧写功能:

单片机必须要下载一个系统文件plcsys.bin,单片机才会被虚拟化出很多资源,比如IO口,定时器,计数器,另外增加一些系统功能的易操作性。

2)        梯形图编辑功能:

程序编辑功能:程序分为主程序、子程序、中断程序。程序内部以网络做为单位。

3)        编译功能:

在用户看来,软件将梯形图转化成芯片可以执行的二进制代码。在软件内部,可分为三个过程 首先将用户编辑的梯形图转化成的语句表。然后将语句表转化为芯片可以识别的汇编代码,最后调用GCC编译器将其转化成二进制代码。

4)        程序下载功能:

在用户烧写系统文件之后,芯片就已经具有了PLC的功能,当用户编写好程序,并生成而进制代码之后,就可以通过上位软件与下位软件进行通信,将生成的二进制代码下载到芯片中去,这样你自己做的PLC就可以工作了。

5)        程序监控功能:

用户下载代码之后,运行PLC后。用户可以通过上位软件与下位软件进行通信,PLC的运行情况,比如:运行、停止PLC,读写PLC的位、字地址。

adolfshxq 发表于 2009-2-2 21:40:36

为什么开发OpenLogic开发平台



开发控制系统现在一般有两种方法,一种方法直接购买成型的控制器,比如工控机,PLC等等,另外一种方法就是直接购买芯片自己制版开发。

第一种方法技术简单,成功率高,但是也有如下缺点,价格比较高,成本要求高时,很难实行。另外直接购买控制器,因为是成品扩展性不好,因此常见到一个PLC上挂了很多扩展模块,造价进一步上升,且稳定性下降。

第二种方法硬件成本较低,可定制性好,但是也有如下缺点,芯片开发技术复杂,对开发者有很高的技术要求,人力成本上升,由于开发者能力层次不齐,可能会使项目失败或者延期。

如何更快更好的开发控制是我们值得好好研究的。

OpenLogic开发平台就是集中考量上述两种方法的优点和缺点,而设计出一个控制系统开发平台。

adolfshxq 发表于 2009-2-3 14:15:38

199的那种  这个忘了说了 呵呵

proco 发表于 2009-2-3 14:13:46

想问一下楼主,您这个万利板子是哪一种?是市场上卖的199元一块的?还是399一块的?谢谢

proco 发表于 2009-2-3 14:13:15

想问一下楼主,您这个万利板子是哪一种?是市场上卖的199元一块的?还是399一块的?谢谢

YourARM 发表于 2009-2-3 13:23:56

对PLC还没什么思路,组团参观。

adolfshxq 发表于 2009-2-3 11:37:28

应该是这样的  但是我处理语句表的时候 还是做了相应的处理的  没有做逻辑处理 

liuzq 发表于 2009-2-3 11:34:43

那就是语法等错误都在编辑梯形图时已完成了,所转化的语句表程序是肯定无错的了,对吧?

本贴被 liuzq 编辑过,最后修改时间:2009-02-03,21:41:37.

adolfshxq 发表于 2009-2-3 11:32:55

是梯形图 语句表 C语言 内部有个过程

liuzq 发表于 2009-2-3 11:28:53

请教一下:

您现在的上位程序是将"梯列图"转化为语句表程序,再转化为*.c程序么?还是其它?3Q

liuzq 发表于 2009-2-3 11:26:04

不不不,要说"少见识"的应是我

adolfshxq 发表于 2009-2-3 11:25:50

关键在于能够准确快速 实现用户想要的功能,PLC不就是为了简单稳定吗,要不不如直接用单片机了 

 复杂点考虑加结构化文本

adolfshxq 发表于 2009-2-3 11:23:26

指令表转梯形图也是可以做的 只是觉得没必要 不知道大家是什么看法。很少看到有人用语句表编程,可能是少见识,呵呵

liuzq 发表于 2009-2-3 11:22:38

只不过,个人认为,PLC上位系统要做到算好,最好要能编译(处理)用象"记事本程序"那样的文

本编辑器编辑的"指令表语句"程序,就象C,pascal...程序一样,不知对不对!

本贴被 liuzq 编辑过,最后修改时间:2009-02-03,11:23:19.

liuzq 发表于 2009-2-3 11:17:10

是啊 语句表太难用了 ,我想用编译C语言编译器那样的方式来编译文本文件,可"指令表语句"的"文本文件"的自由度太大,现在连"产生式"都写不出来

本贴被 liuzq 编辑过,最后修改时间:2009-02-03,11:18:05.

adolfshxq 发表于 2009-2-3 11:11:46

是可以做到的,但是不打算让用户直接可以编辑语句表。考虑以后加个结构化文本。语句表太难用了。

liuzq 发表于 2009-2-3 10:54:01

嗯,很不错啊,

本软件是否可以在编译过程中检查"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.

ndust 发表于 2009-2-3 10:46:40

jh

caorujun 发表于 2009-2-3 10:22:17

兄弟,你做的太棒了,有时间一定找你好好聊聊,呵呵

logln820910 发表于 2009-2-3 08:10:55

高手!牛

adolfshxq 发表于 2009-2-25 12:54:13

谢谢阿莫!幸苦了!

dragonx 发表于 2009-3-10 19:42:31

楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具?

dragonx 发表于 2009-3-10 19:42:31

楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具?

dragonx 发表于 2009-3-10 19:42:33

楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具?

dragonx 发表于 2009-3-10 19:53:22

楼主,做上位软件用到哪些知识啊(从梯形图到语句表到二进制文件),用到哪些开发工具?

adolfshxq 发表于 2009-3-11 09:16:46

用了VC 和一些编译方面的知识

ljgvictory 发表于 2009-3-11 13:27:52

mark

liheming 发表于 2009-3-11 17:32:44

楼主太强了,相当于开发了一个PLC,请问用的是什么单片机,不知道能不能提供一个硬件的电路图,谢谢

adolfshxq 发表于 2009-3-11 20:01:37

暂时都做的是软件部分 硬件下部在做不知道有没朋友 一起合作 哈哈

liheming 发表于 2009-3-12 13:49:46

我对硬件比较熟悉一点,也许可以和楼主交流交流.
QQ:383842790
EMAIL:liheming@163.com
http://liheming.jimdo.com

rkfch 发表于 2009-3-12 15:24:09

theta 发表于 2009-3-22 14:25:05

对楼主很景仰。

手头刚好有万利开发板, 不知道plcsys.bin 是怎么设置系统的,有强烈的兴趣。

adolfshxq 发表于 2009-3-22 19:44:50

我上面发过下位的源代码 你可以看一下 比较简单
现在又增加了一些新的功能 C语言 定时器监控等完善点再传上来
谢谢你的关注。
有问题可以直接问我 呵呵 191177939QQ

banyan_city 发表于 2009-3-26 16:05:21

套用一句台词:“对楼主的景仰,有如涛涛江水.连绵不绝”。

adolfshxq 发表于 2009-3-30 23:57:18

最新版的OpenLogic软件
支持:
位指令,传送指令,比较指令(包括浮点数比较)
数据运算(加减乘除),逻辑运算,移位指令,部分定时器,计数器暂不支持
程序控制指令(标号,跳转,调用子程序)
另外可以直接调用C语言编写的程序。
可以监控位地址 X Y M SM 字地址 W SW,暂不可强制
点击此处下载 ourdev_430356.rar(文件大小:12.95M) (原文件名:openlogic.rar)

cyxavr 发表于 2009-4-9 11:53:34

楼主,可不可说说你的PLC解释程序 原理啊?

bsz84 发表于 2009-12-15 08:47:11

刚发现,很好学习,下文...?

adolfshxq 发表于 2009-12-17 13:22:58

过两天我传个新的上来

fzy33 发表于 2009-12-26 11:50:06

请问楼主,STM32F103RBT6的开发板能不能玩嵌入式PLC开发平台OpenLogic

adolfshxq 发表于 2009-12-28 13:02:49

需要根据开发板改一下下位机需要可以加我QQ我改一下发给你

lwy86 发表于 2009-12-28 13:19:31

mark

shanyan 发表于 2009-12-30 19:25:17

mark

lissdd 发表于 2010-1-13 09:53:06

我试用了一下该软件,界面虽好看,但过于庞大、调用库过多,估计与恐龙般的MS开发工具有关。
更核心的问题是似乎没有编译原理的理论支持,使得指令支持数量太少,可扩展性太差。
我会在未来3个月用Delphi7开发一个集中了西门子Micro-win和Delphi优点界面的IDE,
使用编译原理的词法分析和语法分析,构造语法树,然后再根据不同的MCU指令,编译成为其Bin文件。
现在我正在做语法分析部分。
不要太小儿科,我们需要的是选择一个优秀的开发工具,深入理论研究,加上一颗坚挺的心!

adolfshxq 发表于 2010-1-14 09:43:55

回复【56楼】lissdd
我试用了一下该软件,界面虽好看,但过于庞大、调用库过多,估计与恐龙般的MS开发工具有关。
更核心的问题是似乎没有编译原理的理论支持,使得指令支持数量太少,可扩展性太差。
我会在未来3个月用Delphi7开发一个集中了西门子Micro-win和Delphi优点界面的IDE,
使用编译原理的词法分析和语法分析,构造语法树,然后再根据不同的MCU指令,编译成为其Bin文件。
现在我正在做语法分析部分。
不要太小儿科,我们需要的是选择一个优秀的开发工具,深入理论研究,加上一颗坚挺的心!
-----------------------------------------------------------------------

很傻很天真

346675655 发表于 2010-1-14 10:45:39

虽然不懂但感觉很强大

顶起来

liurangzhou 发表于 2010-1-14 10:54:33

回复【42楼】 adolfshxq

暂时都做的是软件部分 硬件下部在做不知道有没朋友 一起合作 哈哈
---------------------------------------------------------------------------
可不可以直接由下位机来解释PLC代码?

adolfshxq 发表于 2010-1-14 11:03:01

回复【59楼】liurangzhou
可不可以直接由下位机来解释PLC代码?
-----------------------------------------------------------------------
现在是直接编译成bin文件下位机直接调用的速度较快
没有做成解释型的

sz_ehome 发表于 2010-1-14 11:07:27

mark

xiaolei0428 发表于 2010-2-20 15:19:42

mark,一直在用plc,一直想搞清楚。

qpzhang 发表于 2010-3-7 13:33:01

学习了,支持!

kangar0065 发表于 2010-5-7 15:56:37

这个要留意一下

liuguangfeng 发表于 2010-5-31 21:44:48

请问这个软件怎样定义IO引脚呢

wazhfs 发表于 2010-6-13 08:10:38

这个要留意一下

AVR_ARM 发表于 2010-6-13 11:44:45

建议还是做成解析型的吧,现在大部分也都是解析型的,编译型的虽然实时响应速度快,但是,你开发的软件可移植性和适应性会很差,而且,现在的处理器速度不断提高,相对而言,解析型的速度已经足以胜任,无需复杂的编译型。做编译型,只会让你的路越走越窄的

adolfshxq 发表于 2010-6-13 12:15:05

谢谢各位 呵呵

radiation 发表于 2010-7-10 00:12:11

记号!

liangyurongde 发表于 2010-7-10 08:54:40

mark

allen 发表于 2010-7-10 18:12:58

很好啊

adolfshxq 发表于 2010-7-18 23:06:48

上传最新版本
ourdev_568886.rar(文件大小:6.14M) (原文件名:openlogic20100708.rar)

lou0908 发表于 2010-8-21 21:55:03

牛人啊,没用过plc的人对楼主的人品表示敬佩

huayuliang 发表于 2010-8-23 15:45:16

编译型的不见得不好吧?
尤其现在的MCU差不多都支持ISP、IAP等。。

没用过这个开发板。。不知道万利的这个用的啥MCU。

持续关注中。。

lantian0099 发表于 2010-8-25 17:22:04

mark

anxiangbo 发表于 2010-9-7 14:05:00

记号

dogcome 发表于 2010-11-9 22:42:19

mark

zsyjacky 发表于 2010-11-15 00:06:33

这么好的开源项目怎么暂停了!期待中。。。

Fire_cow 发表于 2010-11-15 06:19:17

mark

liuguangfeng 发表于 2010-11-17 19:30:31

哪位同志有详细的使用说明呢?包括下位

qwqwqw222 发表于 2010-11-18 14:56:09

I/O口怎么设置

QQ373466062 发表于 2011-3-10 20:59:09

楼主辛苦了

lantian0099 发表于 2011-3-14 10:57:30

mark

anxiangbo 发表于 2011-3-15 13:13:30

I/O口怎么设置?
楼主在吗?

gusigusi 发表于 2011-5-10 13:29:22

记号,谢谢

sylgy 发表于 2011-6-4 17:21:59

回复【72楼】adolfshxq
-----------------------------------------------------------------------

楼主有用过PLC的另外一种编程语言FBD(功能块图)么?

siemenswjl 发表于 2012-1-27 20:59:23

开发板咱么搜不到?在哪里买到

siemenswjl 发表于 2012-1-27 21:10:38

国外也有类似的(开源)软件,但是英文的。c语言编的。http://cq.cx/ladder.pl

zywh 发表于 2012-1-28 18:12:05

mark

wkman 发表于 2012-1-28 18:34:03

倒是希望有一款支持c语言的plc,,,,,

liehuocun1 发表于 2012-1-30 17:04:18

支持楼主的精神

w19851229 发表于 2012-2-20 00:39:33

可以自己做啊

Elec_Ramble 发表于 2012-12-14 20:15:28

来学习的,楼主牛人,正在一个一个看你的帖子。。。

judge 发表于 2012-12-17 12:36:58

l楼主谢谢了,想请帮忙开发。可以价我的QQ:153396615
页: [1]
查看完整版本: 万利开发板也可以当PLC玩--编译型PLC开发平台OpenLogic软件试用【恢复】