当前位置: 首页 > 工具软件 > Beremiz > 使用案例 >

为什么打不开pythonw_[源码]开源PLC项目Beremiz的RTE在stm32f1上实现

曾皓
2023-12-01

0. 前言

之前发过一个纪念性质的帖子 https://www.amobbs.com/thread-5722409-1-1.html

那时候是刚把通信功能整好了,没有整理就只发了个帖子开心一下,还是有坛友感兴趣的,就业余再整理了下

其实上周已经把modbus功能移植好,但由于Beremiz这个程序是依赖Python来运行的,配置起来估计没有那么顺利,尤其是在Windows的环境下

所以这周研究了一下打包的方法,现在已经整好了一个安装包,直接把编译器和Python都打包进去,方便有兴趣的坛友捣鼓测试

1. 移植的modbus效果

测试的硬件是:正点原子的stm32f103 Mini开发板

主机:PC端的Modbus Poll 进行模拟

注意,由于没有对modbus的地址进行功能分类,所以沿用了YAPLC里面的分类,只有63个holding reg,地址是1~63,

1~31是特殊用途,32~63是用户自定义的,对应Beremiz IDE中的LOCAL变量地址%MW1.0~%MW1.31

modbus的配置:从机地址 - 1,波特率 - 115200,模式 - RTU

2. 附件说明

Beremiz是用了wxPython作为界面框架的,所以离不开Python,安装包里附带的是Python2.7.16,64位版本的(32位的请自己下载和覆盖),已经把需要的依赖库都装好了

其次,由于Beremiz是通过转换IEC61131-3里面的编程语言为C语言,然后再把C编译成可执行文件给RTE运行,所以会有两个编译器

一个是matiec(iec2c/iec2iec),一个是arm-gcc,因为RTE是要运行在stm32上

另外,因为RTE是楼主根据YAPLC项目改过来的,改名叫了DYPLC,所以会有一个DYPLC的目录,负责通信和平台识别的

最后,放了一个测试demo的项目目录

由于Python和arm-gcc两个模块比较大,所以安装包也很大,200多MB,解压出来有800多MB,请注意

启动方式已经在快捷方式里面配置好了,直接点击快捷方式就可以启动软件使用

3. STM32的RTE烧写

在启动Beremiz IDE之前,先把附件中的RTE工程解压了,然后文件夹projects里面有对应的boot和rte的keil mdk工程

楼主使用的是mdk v5.14,如果要用其他的环境,则参考配置文件自助进行重新配置

首先,把boot的烧写进去,然后,再把rte的烧写进去,重新上电

此时因为没有PLC的APP程序,所以会默认的运行dummy代码,等待Beremiz IDE重新下载PLC应用程序

4. 简单使用说明

这里以楼主自己的硬件平台来进行描述,用的USB转串口模块CH340,硬件和驱动自己搞定

安装好软件后,打开测试demo,工程配置已经预先搞好了

打开项目的配置页,串口号根据实际情况填写

程序页是梯图模式,简单,资源页设定PLC的扫描周期

点击[构建项目1]之前,最好点一下隔壁的清除按钮,提示完成后[2],点击[连接PLC3]

连接PLC成功后,点击[传输程序1],提示成功后[2],点击[开始PLC3],就可以启动PLC,进入Debug模式

要注意的是,如果PLC是第一次使用,由于RTE是运行了dummy代码,所以要在传输玩后断开PLC连接,然后进行复位,之后RTE会对下载的PLC程序进行检查和运行

再连接上PLC之后,就可以启动和Debug了。如果不是第一次使用,之前已经有PLC程序了,则传输完成后即可启动和Debug。

5. 后续

现在IDE和RTE的通信打通了,IDE的打包方式也整好了,后面会把精力放在功能的移植添加和问题修改上面

Beremiz本身的问题也不少的,功能也不算丰富,但框架比较自由,可以做很多扩展,一步步来吧

TODO List:

软件 - 模拟量功能的移植实现,运动控制功能的研究(这个估计要花比较多的时间)

硬件 - 找一个比较像样点的板子调试,重新说明,LZ不太懂硬件设计,前些时候看到另外一个帖子(https://www.amobbs.com/thread-5659384-1-1.html)有个硬件的,

但那个帖子的作者现在没有在论坛活跃了,不然可以问问能不能买一个,也希望有坛友推荐

6. 附件

安装包比较大200多MB,解压后有800多MB,分卷压缩上传到论坛当作备份,另外给出有个网盘链接:https://pan.baidu.com/s/1NUIXou_bBnzMct16j_WAkQ  提取码:dw3g

stm32f103的RTE源码,默认是对正点原子Mini板的配置,如果要在其他板子上使用,不嫌麻烦就看着源码修改,RTE和IDE的对应部分都要修改

如有问题,请发帖留言

 类似资料: