落叶知秋 发表于 2019-11-19 23:29:03

[纪念帖]开源PLC项目Beremiz的RTE在stm32f1上的实现

1.介绍

开源PLC项目Beremiz虽然知道的人不多,但还是已经出来有很多年了,可以说是一个PLC/IDE吧
可以是运行在Windows或Linux上作为Soft-PLC来进行资源控制,调用操作系统的API生成一个应用线程运行,同样也支持单片机,只要RTE自己写好就行
编译型PLC,编译器完全支持IEC61131-3标准里面定义的5种编程语言,虽然应该是有BUG的{:titter:}
目前也有开发者在进行维护,但进度和热度都比较捉急,官网:https://beremiz.org/index.html.en

楼主用正点原子的STM32F1开发板(迷你版本,Mini)实现了配合Beremiz的运行时环境(RTE,Run-Time-Env),然后通过串口跟PC上的Beremiz(IDE)通信成功了
这个基于STM32的RTE,基本是重度使用了另一个项目YAPLC里的代码,YAPLC是一个在STM32上实现了与Beremiz匹配的RTE的项目
YAPLC这个项目俄罗斯人开发和维护的,也做出了对应的产品,GitHub上的地址:https://github.com/nucleron/RTE

楼主做的工作主要是:把STM32F1的驱动库换成标准库,YAPLC用的是一个开源的CM3的驱动库,改了通信协议,加了个BootLoader;
程序的整体框架基本都是照搬YAPLC的,空闲时间断断续续搞了好久,终于跑通了第一步,发帖做个纪念
也不多说了,感兴趣的坛友可以发帖交流或自行查阅资料

2.效果图片










3.关于开源
开源是会开源的,因为无论Beremiz还是YAPLC的license都是有GPL限制的,YAPLC留了个商业许可的选择
楼主也没打算违反这两个项目的license,只是现在才刚刚把整个流程跑起来了,还是有不少问题的,很多东西也没有整理好,
而且YAPLC的RTE有好些功能都没有搬过来,目前只是实现了IO功能,还有些ModBus,ADDA那些功能没有搬,以后还想加上PLCOpen增补的运动控制功能
说起运动控制功能,好像Beremiz的维护者近段时间在整,看看以后出来后更新一版。
综上所述,开源是肯定会开源的,等整理一些有用的功能出来,成熟一点再进行吧,现在放出来也没啥实用性。但具体时间嘛……{:biggrin:}

4.硬件求助
楼主不会设计硬件,不会画图,工作技能偏软件,不是全能电工,在调试的时候还是感觉到手头上这块Mini板比较不顺手,虽然用来实验验证是可以的,
但还是想搞个正经点的PLC板子来配套,满足一下所谓的“产品的感觉”,所以希望看到这个帖子的坛友推荐一下可以买到的比较靠谱的PLC的硬件,STM32系列的最好,
不用太多的修改,其他的也没有问题,后续可以移植。

5.最后
发帖之前感觉可以在开源PLC,stm32,正点原子这3个板块上面发,纠结了一会儿……{:biggrin:}
对于这个东东(还不能称之为“项目”)的后续,目前是规划为业余作业吧,有能力和时间的前提下会继续整下去

kevin_me 发表于 2019-11-20 00:00:16

支持 可编程在未来还是有厂家愿意投入资源做的 目前就KW、infoteam,codesys几个商用的比较成熟。

huxiaoping 发表于 2019-11-20 00:11:10

楼主精神值得学习!

估计你开源了还有人来玩玩,不开源估计大家也就是来看看热闹,论坛里面大量会硬件的人,

lm4766 发表于 2019-11-20 17:01:28

支持!楼主加油

GoingDown 发表于 2019-11-20 17:11:30

请问一上在github上怎么找偏硬件方面的项目。 比如像这二个。

落叶知秋 发表于 2019-11-20 17:17:45

GoingDown 发表于 2019-11-20 17:11
请问一上在github上怎么找偏硬件方面的项目。 比如像这二个。

我都是搜索关键字的,感觉GitHub上的硬件项目还是比较少的,难找

落叶知秋 发表于 2019-11-20 17:24:04

kevin_me 发表于 2019-11-20 00:00
支持 可编程在未来还是有厂家愿意投入资源做的 目前就KW、infoteam,codesys几个商用的比较成熟。
...

感觉国内codesys比较流行一点,不过Beremiz与codesys差距还是有很大的,开源项目成熟度是比较低

落叶知秋 发表于 2019-11-20 17:26:29

huxiaoping 发表于 2019-11-20 00:11
楼主精神值得学习!

估计你开源了还有人来玩玩,不开源估计大家也就是来看看热闹,论坛里面大量会硬件的人 ...

后面会开源的,但楼主比较懒,完善代码要花的时间不确定{:biggrin:}

落叶知秋 发表于 2019-11-20 17:26:44

lm4766 发表于 2019-11-20 17:01
支持!楼主加油

多谢支持哈

zhangfuhg 发表于 2019-11-20 19:04:03

{:smile:}先实现可编程控制器基本 功能,在添加其他!

srygg 发表于 2019-11-20 19:06:11

落叶知秋 发表于 2019-11-20 17:17
我都是搜索关键字的,感觉GitHub上的硬件项目还是比较少的,难找

请教一下下载GitHub上的东西,一直停着不动是要翻墙才行吗?

whatcanitbe 发表于 2019-11-20 19:33:09

请继续你的表演

落叶知秋 发表于 2019-11-20 20:32:58

srygg 发表于 2019-11-20 19:06
请教一下下载GitHub上的东西,一直停着不动是要翻墙才行吗?

没有啊,没有爱国上网,能够登录GitHub就能下载,如果卡主了,可能是网络不好吧,重新下载试下

xtwhf 发表于 2019-11-20 22:24:36

本帖最后由 xtwhf 于 2019-11-20 22:25 编辑

落叶知秋 发表于 2019-11-20 20:32
没有啊,没有爱国上网,能够登录GitHub就能下载,如果卡主了,可能是网络不好吧,重新下载试下 ...

大的文件用手机做热点!下载可达几百K/S,已经试过!否则干等!{:lol:}

longlong105 发表于 2019-11-21 07:33:21

请继续……

jordonwu 发表于 2019-11-21 08:18:43

这个可以单步调试吗?

wurst 发表于 2019-11-21 08:25:26

总觉得编译器的SoftPLC不太灵活,FB倒是用目标语言

落叶知秋 发表于 2019-11-21 08:41:39

jordonwu 发表于 2019-11-21 08:18
这个可以单步调试吗?

调试功能还是比较简单的,就只有变量列表监控,没有断点设置

落叶知秋 发表于 2019-11-21 08:47:25

wurst 发表于 2019-11-21 08:25
总觉得编译器的SoftPLC不太灵活,FB倒是用目标语言

请再多说一下你的观点{:biggrin:}

leifeng 发表于 2019-11-21 08:53:03

硬件其实比较好做,工作量大的是软件

wychao 发表于 2019-11-21 10:14:15

看着不错

dtdzlujian 发表于 2019-11-22 06:01:46

软件类似西门子

Elec_Ramble 发表于 2019-11-22 08:25:31

这个平台打通了整个链路,从组态软件到目标硬件再到HMI,非常值得学习。给楼主点赞。

闲鱼翻身 发表于 2019-11-22 08:28:36

有接触过其他老师开发的,运行在BBB,实际应用有不少问题,最后还是用了codesys

落叶知秋 发表于 2019-11-22 08:46:56

闲鱼翻身 发表于 2019-11-22 08:28
有接触过其他老师开发的,运行在BBB,实际应用有不少问题,最后还是用了codesys ...

开源软件与商业软件的特性是非常明显的,如果想着拿个开源软件得到商业软件的服务,那是不现实的
楼主学习研究Beremiz的原因之一是,开源软件虽然问题多,但自由度很高,要商用也必须付出更大的精力,毕竟是没有售后的

yuquanyou 发表于 2019-11-28 10:29:29

支持!楼主加油,欢迎共享

MoMo_avr 发表于 2019-11-28 10:42:16

现在做softPLC的内核的公司越来越多了,支持开源的。

holged 发表于 2019-11-28 10:55:36

挺不错的,楼主什么时候放个版本出来给我们玩玩。稳不稳定倒不重要。

落叶知秋 发表于 2019-11-28 11:01:55

holged 发表于 2019-11-28 10:55
挺不错的,楼主什么时候放个版本出来给我们玩玩。稳不稳定倒不重要。

这两天开始移植ModBus功能,等调试好了,然后再研究一下怎么打包Python的相关文件成安装程序,就会放到论坛上来,代码应该还会放到GitHub上

holged 发表于 2019-11-28 12:09:01

落叶知秋 发表于 2019-11-28 11:01
这两天开始移植ModBus功能,等调试好了,然后再研究一下怎么打包Python的相关文件成安装程序,就会放到论 ...

好的,等你好消息

埃托奥 发表于 2019-12-22 15:39:02

我试了一下软件打不开。刚开始缺少一个DLL文件,DLL文件加进去后启动快捷方式没有任何反应。

fengyunyu 发表于 2019-12-22 15:56:02

开源好,普及了技术

落叶知秋 发表于 2019-12-22 20:11:05

埃托奥 发表于 2019-12-22 15:39
我试了一下软件打不开。刚开始缺少一个DLL文件,DLL文件加进去后启动快捷方式没有任何反应。 ...

是我在另外一个帖子发的那个软件吗?还是?

埃托奥 发表于 2019-12-22 20:19:59

落叶知秋 发表于 2019-12-22 20:11
是我在另外一个帖子发的那个软件吗?还是?

就是你那个帖子里的软件,可以加QQ吗?916047893

wenjin0386 发表于 2020-1-10 10:01:45


厉害啊!!

阿豪博士 发表于 2020-1-18 08:15:53

请问一下,在STM32H7上面实现?或者AM335X上面实现,难度大吗?

落叶知秋 发表于 2020-1-18 08:54:56

阿豪博士 发表于 2020-1-18 08:15
请问一下,在STM32H7上面实现?或者AM335X上面实现,难度大吗?

如果是裸机或是用RTOS的话,就把底层写好,然后熟悉YAPLC那一套ABI的接口和流程,照着搬应该就可以了
如果是跑Linux这种操作系统的话,可以直接用Beremiz的主线版本,有Linux下的Runtime Service示例,直接开了个进程来执行编译过的PLC程序
难度的话,熟者不难,难者不熟{:titter:} ,还是要熟悉一下Beremiz本身的代码框架的,在Linux环境下应该难度会低一些,可以用现成的代码

dragonbbc 发表于 2020-3-25 09:54:47

mark,开源PLC

ycwjl728 发表于 2020-3-27 07:35:34

楼主,我看beremiz上面都是写的smarteh公司Longo programmable controller。
是商业化了吗?

strongbaby 发表于 2020-3-27 07:49:12

支持楼主,加油!

wenming 发表于 2020-3-27 08:05:03

ycwjl728 发表于 2020-3-27 07:35
楼主,我看beremiz上面都是写的smarteh公司Longo programmable controller。
是商业化了吗? ...

那个应该不是商业化了,而是拿来用的测试样机。或者拿的本来就已经商业化的机器测试。

落叶知秋 发表于 2020-3-27 09:09:14

ycwjl728 发表于 2020-3-27 07:35
楼主,我看beremiz上面都是写的smarteh公司Longo programmable controller。
是商业化了吗? ...

应该是的,Beremiz最早商业化的好像是原作者创建的一家法国公司Lolitech,我看到的最早的说明书上就写着这个
smartech这个公司在斯洛文尼亚,产品看上去是偏楼宇自动化方面的,应该也是跟Beremiz项目现在的维护者有关系的,最新的版本支持BACnet,比较偏数据通信处理方面
不过这家公司的版本是定制过的,而且控制器端的源码没有开放出来(Beremiz的license没有要求下位机源码开放),如果感兴趣的话可以去下个手册看看或IDE试试

在Beremiz的官网上收录了几个比较经典的应用案例,俄罗斯那边有几家,有一家是把下位机也开源了的,这个也是我搬运到论坛的那个帖子的代码原型
另外韩国也有个实验室的项目用到了Beremiz,就是KOSMOS那个,里面集成了运动控制功能,基于EtherCAT的,运动控制库是Beremiz原作者好几年前给他们做顾问的时候写的,支持了PLCOpen里面的增补功能,但有没有商用不清楚

基本上在Beremiz的官网上的Application写着的都是应用案例,大多也应该是商业化的,只要有手册出来的应该都打算商业化,但到底成绩如何,国内比较难查的到{:biggrin:} ,目前看起来可能smartech官网做的好看些,貌似还可以吧
Beremiz是存在商业化潜力的,虽然问题还不少,功能也没有主流商业厂家的完善,但起码能用嘛,不过放到国内的话,依照目前的项目状态估计很难做的起来吧,还是要下翻功夫去完善功能的

落叶知秋 发表于 2020-3-27 09:09:43

wenming 发表于 2020-3-27 08:05
那个应该不是商业化了,而是拿来用的测试样机。或者拿的本来就已经商业化的机器测试。 ...

可以看看42楼的回复

wenming 发表于 2020-3-27 09:23:05

落叶知秋 发表于 2020-3-27 09:09
可以看看42楼的回复


一直在关注这个东西,包括内部的编译器。
我们去年做了一款PLC 今年要小批量了。我与同事一直在考虑用什么软件架构。
大体参数如下:

CPU: STM32MP157 双核A7 800MHZ,M4协处理器
Memory/Storage: 1GB ddr3, 8GB emmc
16路高速DO
16路DI ,其中8路高速
一个千兆以太网,一个百兆
两路隔离的CAN-FD]
一路隔离的RS485,一路232
8路高速AD 支持+-10V,+-5V,以及4-20MA,最高采样500K
HDMI接口,可以做人机界面
一个mini-PCIE 卡座,支持4G/LTE或者Zigbee ,lora

wenming 发表于 2020-3-27 09:27:27

设计的时候,我们团队参考了 SYTEC 的CTR-700 ,西门子 S7-1500 以及美国一家公司groov的公开文档。希望做一个长期维护的设备。

落叶知秋 发表于 2020-3-27 09:31:33

wenming 发表于 2020-3-27 09:23
一直在关注这个东西,包括内部的编译器。
我们去年做了一款PLC 今年要小批量了。我与同事一直在考虑用什 ...

硬件性能还是很强大的,应用场合可以做的比较广
可惜我Linux玩的不溜,不然可以试试给你们做做分支实验{:titter:}

ycwjl728 发表于 2020-3-27 09:40:39

落叶知秋 发表于 2020-3-27 09:09
应该是的,Beremiz最早商业化的好像是原作者创建的一家法国公司Lolitech,我看到的最早的说明书上就写着 ...

学习了!
我看好像最近两年好像更新的都不太多。

zhucezhuanyong 发表于 2020-3-27 09:54:18

落叶知秋 发表于 2020-3-27 09:31
硬件性能还是很强大的,应用场合可以做的比较广
可惜我Linux玩的不溜,不然可以试试给你们做做分支实验{: ...

楼主牛逼,这个东西我好多年前看RTT他们团队说过,然后我了解了一下,一直想弄,但是一直没下手,看了你这个,激动,我准备在NXP的RT1052上面试一试

HXDZ-AAA 发表于 2020-3-27 10:33:13

据说西门子的1200用的也只是cortex R系列MCU,性能够牛的了,在这里竟然用MP157系列搞,性能是不是应该吊炸天?

落叶知秋 发表于 2020-3-27 10:37:12

zhucezhuanyong 发表于 2020-3-27 09:54
楼主牛逼,这个东西我好多年前看RTT他们团队说过,然后我了解了一下,一直想弄,但是一直没下手,看了你 ...

期待你的作品,有问题可以多交流

zhucezhuanyong 发表于 2020-3-27 11:57:17

落叶知秋 发表于 2020-3-27 10:37
期待你的作品,有问题可以多交流

到时候向你多请教,还请多多赐教{:shy:}

魏博 发表于 2020-3-27 12:25:28

支持楼主!期待中

bossmaster_chan 发表于 2020-4-10 20:21:30

支持楼主!頂一下!

xiaoha_abc 发表于 2020-4-11 22:49:13

楼主需要什么样的硬件,我们可以一起讨论合作一下

Feco 发表于 2020-4-12 06:21:25

支持楼主!期待中

落叶知秋 发表于 2020-4-12 10:52:59

xiaoha_abc 发表于 2020-4-11 22:49
楼主需要什么样的硬件,我们可以一起讨论合作一下

谢谢支持,目前在准备加运动控制的功能,脉冲型的,在参考PLCOpen和原作者的运动控制库,等写完代码后会在之前一位坛友赠送的硬件(6轴)上测试,
如果完成了运动控制后,会考虑在论坛上讨论一下之后的硬件规划,
当然软件还有很多问题和功能待解决和完善,目前觉得加上运动控制是比较优先的事情

xiaoha_abc 发表于 2020-4-14 11:18:34

落叶知秋 发表于 2020-4-12 10:52
谢谢支持,目前在准备加运动控制的功能,脉冲型的,在参考PLCOpen和原作者的运动控制库,等写完代码后会 ...

加上一些基于CAN总线的控制设备怎么样呢,我这边有成品嘿嘿

落叶知秋 发表于 2020-4-14 11:24:35

xiaoha_abc 发表于 2020-4-14 11:18
加上一些基于CAN总线的控制设备怎么样呢,我这边有成品嘿嘿

是CANOpen还是自定义的CAN总线协议?
这种一般是扩展部件用的吧?
还是你们用来做上位机通信?

xiaoha_abc 发表于 2020-4-14 12:37:23

落叶知秋 发表于 2020-4-14 11:24
是CANOpen还是自定义的CAN总线协议?
这种一般是扩展部件用的吧?
还是你们用来做上位机通信? ...

就是一系列的扩展部件

可强的Autumn 发表于 2020-11-7 11:12:48

您好,我想自己修改Beremiz,比如自己添加交叉编译工具,请问有没有Beremiz源码解析的相关参考文件呢

落叶知秋 发表于 2020-11-7 11:45:27

可强的Autumn 发表于 2020-11-7 11:12
您好,我想自己修改Beremiz,比如自己添加交叉编译工具,请问有没有Beremiz源码解析的相关参考文件呢 ...

目前没有这样的相关文档,你想自己修改的话,只能去看源码了,其实也不是很难的

今年下半年没有太多时间去整beremiz,不过估计再过一段时间会抽时间把几个运动控制的功能块整上去看看初步效果

93434387@qq.com 发表于 2020-11-8 15:12:43

最近正想找个开源的大腿抱抱,搞个plc,网上的三菱fx3u的没有以太网下载程序的功能,实在是不方便。。

gyj82117 发表于 2021-4-8 15:25:38

大牛啊!厉害厉害!

可强的Autumn 发表于 2021-7-22 15:34:20

落叶知秋 发表于 2020-1-18 08:54
如果是裸机或是用RTOS的话,就把底层写好,然后熟悉YAPLC那一套ABI的接口和流程,照着搬应该就可以了
如 ...

楼主 请问如果我使用的是STM32MP157芯片,目前跑的是Linux系统,Beremiz源码需要修改么,Linux下runtime service有示例链接么

落叶知秋 发表于 2021-7-23 08:39:32

可强的Autumn 发表于 2021-7-22 15:34
楼主 请问如果我使用的是STM32MP157芯片,目前跑的是Linux系统,Beremiz源码需要修改么,Linux下runtime...

Beremiz本身是开源项目,也是SoftPLC,源码支持在Win和Linux下的运行,早期的开发者/维护者是在Linux环境下开发的,所以在Linux下运行直接看主线的源码就好了
最新的主线代码是放在bitbucket上:
https://bitbucket.org/automforge/beremiz/src/master/

可强的Autumn 发表于 2021-7-23 09:27:08

落叶知秋 发表于 2021-7-23 08:39
Beremiz本身是开源项目,也是SoftPLC,源码支持在Win和Linux下的运行,早期的开发者/维护者是在Linux环境 ...

好的 谢谢楼主 如果我的开发板也是Liunx系统,Beremiz源码是不是也要做出相应的修改

落叶知秋 发表于 2021-7-23 11:23:35

可强的Autumn 发表于 2021-7-23 09:27
好的 谢谢楼主 如果我的开发板也是Liunx系统,Beremiz源码是不是也要做出相应的修改 ...

应该不用修改直接可以用的,就算有问题应该也是一些接口的兼容性问题,可以看着来改,不过楼主不熟Linux,给不了准确的意见

还有的话,就是你需要在Linux下把python的那些库都装好,不然会运行异常

可强的Autumn 发表于 2021-7-23 13:44:52

落叶知秋 发表于 2021-7-23 11:23
应该不用修改直接可以用的,就算有问题应该也是一些接口的兼容性问题,可以看着来改,不过楼主不熟Linux ...

好的! 谢谢{:handshake:}

yiyinzhudan 发表于 2021-8-30 08:16:08

感谢楼主无私分享

zhou_taotb 发表于 2021-10-16 09:10:17

楼主,我看别的开发的梯形图界面里,有这种点阵定位,请教一下这种是如何实现的,能指导一下吗?

落叶知秋 发表于 2021-10-18 08:32:16

zhou_taotb 发表于 2021-10-16 09:10
楼主,我看别的开发的梯形图界面里,有这种点阵定位,请教一下这种是如何实现的,能指导一下吗? ...

你说的点阵定位,是指哪个?触点图片?还是背景?

seezol 发表于 2022-3-29 16:41:38

能做个记号吗 ?

wenchm2015 发表于 2022-3-30 16:44:50

HXDZ-AAA 发表于 2020-3-27 10:33
据说西门子的1200用的也只是cortex R系列MCU,性能够牛的了,在这里竟然用MP157系列搞,性能是不是应该吊炸 ...
(引用自49楼)

S7-1200、S7-1500使用Asic,丝印SOC1,文档:是双核CORTEX M4

caillet 发表于 2022-3-30 17:04:58

CORTEX M4 其实够用了

ZJW 发表于 2022-8-5 18:50:20

您好,这个有M4单片机的吗

落叶知秋 发表于 2022-8-5 19:10:39

ZJW 发表于 2022-8-5 18:50
您好,这个有M4单片机的吗
(引用自75楼)

没有移植到M4的,demo给出的是M3的,移植到M4很容易

abcd8341 发表于 2023-6-20 08:38:38

本帖最后由 abcd8341 于 2023-6-21 07:53 编辑

感谢楼主无私分享
页: [1]
查看完整版本: [纪念帖]开源PLC项目Beremiz的RTE在stm32f1上的实现