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的对应部分都要修改
如有问题,请发帖留言