搜索
bottom↓
回复: 109

[开源]在开源PLC项目Beremiz上添加运动控制功能

  [复制链接]

出40入42汤圆

发表于 2021-1-2 00:57:46 | 显示全部楼层 |阅读模式
0. 前言
首先祝各位坛友元旦快乐
距离上次更新有一年了,真是感觉有点惭愧,不过就一点而已
2020年初本来是有很充裕的时间来更新这个业余项目的,但那时整个社会都处于比较紧张的状态,LZ也一样,所以这个业余项目就放一边了
然后到4/5月份的时候,情况没那么紧张了,而那时刚好也有一点点业余时间,就开始规划为Beremiz添加运动控制的功能,先根据GRBL的机制做了一个脉冲发生模块
到了6月的时候,把Beremiz的外国维护者提供的一个没有license的运动控制模块,给梳理了一下,然后添加到了LZ手上的版本的Beremiz里面,硬件是基于STM32F103的
还没有来得及调试,到7月份就开始忙,一直到11月份,进度都原封不动,到12月份的时候觉得有点不好意思了,就挤些时间来做调试和完善
最后,在2021的元旦里才可以整出来一个觉得勉强可以发的版本,所以就发帖了

1. 一些说明
本次添加的运动控制功能,其实也是搬运工作,源码是Beremiz原作者在韩国做顾问时,编写的一套满足PLCopen前两部分规范的运动控制框架
本次添加的只有单轴位置运动功能,没有多轴运动的部分,因为原来的代码比较多和杂,目前计划是分步来修改和调试
本次发布的软件里面,最多支持6轴,脉冲发生是参考了GRBL的机制,每个轴可以独立,最大的脉冲频率只能到20KHz

2. 效果截图
打开上位机IDE后的整体视图


在属性设置里面会多了一个运动控制库的勾选项


在右侧的功能库里面,会以FunctionBlock的形式给出运动控制的功能块


运动轴的轴号设置,是通过地址变量来赋值


在变量列表中,FB可以通过双击来进行内部的变量浏览


循环走一个来回的脉冲情况,密集的是脉冲,下面的是方向


脉冲放大后的效果,GRBL机制,占空比比较随意


程序跑起来后的整体界面效果


实物调试


3. 附件
IDE以网盘的方式分享,刚好站长现在提供了百度网盘的出借服务,就用这个了,安装包200MB左右
百度盘连接:https://pan.baidu.com/s/12YwbhpFTTz-_xZga1Nz6NQ
提取码:b7hi
硬件的RTE部分源码:

然后提供一个好久之前写的,还不完善的文档,当初看Beremiz源码的时候,稍微记录了一下,或许后面会再随缘更新,仅做参考:


4. 附言
目前添加的运动控制功能也比较简单,基本只符合了PLCopen第1部分里面的一点点,但后面会逐步完善
然后就是以后这个项目基本会以“软件”的方向去进行维护,大部分情况下LZ会用开发板来进行调试,之前还想搞个硬件来整一下,后来发现还是开发板省事
最后,如果有问题或是疑问的话,在帖子中提出进行交流,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入18汤圆

发表于 2021-1-2 05:21:37 来自手机 | 显示全部楼层
厉害,支持楼主

出100入101汤圆

发表于 2021-1-2 08:47:47 来自手机 | 显示全部楼层
大神厉害

出0入0汤圆

发表于 2021-1-2 09:23:05 | 显示全部楼层
喜闻乐见!感谢!

出0入25汤圆

发表于 2021-1-2 09:28:02 | 显示全部楼层
不明觉厉     

出0入0汤圆

发表于 2021-1-2 09:42:58 | 显示全部楼层
厉害!!

出90入0汤圆

发表于 2021-1-2 11:02:00 | 显示全部楼层
这个必须顶,楼主干货满满呀

出0入4汤圆

发表于 2021-1-4 09:24:07 | 显示全部楼层
不明白Beremiz是解释型PLC还是编译型PLC,Beremiz的单轴运动控制模块,我看是标准的plcopen定义的模块啊,还支持buffer模式。

出40入42汤圆

 楼主| 发表于 2021-1-4 09:38:03 | 显示全部楼层
MoMo_avr 发表于 2021-1-4 09:24
不明白Beremiz是解释型PLC还是编译型PLC,Beremiz的单轴运动控制模块,我看是标准的plcopen定义的模块啊, ...

编译型的,1楼说了符合PLCOpen规范

出135入222汤圆

发表于 2021-1-4 10:52:27 | 显示全部楼层
落叶知秋 发表于 2021-1-4 09:38
编译型的,1楼说了符合PLCOpen规范

Beremiz现在还在更新吗?

出40入42汤圆

 楼主| 发表于 2021-1-4 11:37:01 | 显示全部楼层
lyping1987 发表于 2021-1-4 10:52
Beremiz现在还在更新吗?

上一次更新是半年之前,其实现在基本不见怎么更新功能,修一下BUG之类的,国外Beremiz这个项目有点半死不活的样子

出135入222汤圆

发表于 2021-1-4 11:43:49 | 显示全部楼层
落叶知秋 发表于 2021-1-4 11:37
上一次更新是半年之前,其实现在基本不见怎么更新功能,修一下BUG之类的,国外Beremiz这个项目有点半死不 ...

您主要是自己用,还是想做成产品呢?感觉编程风格差距还是比较大!

出40入42汤圆

 楼主| 发表于 2021-1-4 11:56:40 | 显示全部楼层
lyping1987 发表于 2021-1-4 11:43
您主要是自己用,还是想做成产品呢?感觉编程风格差距还是比较大!

其实主要是学习和练手,也没有自己用,LZ不做设备和硬件

之前在论坛发帖的时候,有坛友感兴趣,就发出来一起交流

LZ觉得Beremiz做成商用产品的价值不是很大(如果要商用,要花大力气去整改完善),倒是作为教育学习类型的好像不错

编程风格是偏欧系的(IEC61131-3),如果用过西门子的会感觉眼熟些,跟国内用惯了的日系风格PLC是不太一样

出0入4汤圆

发表于 2021-1-4 12:50:20 | 显示全部楼层
本帖最后由 MoMo_avr 于 2021-1-4 13:02 编辑
落叶知秋 发表于 2021-1-4 09:38
编译型的,1楼说了符合PLCOpen规范

谢谢

出0入0汤圆

发表于 2021-1-4 13:57:41 | 显示全部楼层
NB,学习了

出0入0汤圆

发表于 2021-1-4 14:01:23 | 显示全部楼层

楼主,刚装完编译示例工程报错,这个是缺少什么吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入20汤圆

发表于 2021-1-4 16:00:21 | 显示全部楼层
关注!感谢分享!

出40入42汤圆

 楼主| 发表于 2021-1-4 16:50:20 | 显示全部楼层
holged 发表于 2021-1-4 14:01
楼主,刚装完编译示例工程报错,这个是缺少什么吗?

是按照安装包全部安装的吧?

编译前有没有清除一遍?就是扫把那个图标

出0入0汤圆

发表于 2021-1-4 22:58:34 | 显示全部楼层
厉害!!

出0入0汤圆

发表于 2021-1-5 09:53:05 | 显示全部楼层
落叶知秋 发表于 2021-1-4 16:50
是按照安装包全部安装的吧?

编译前有没有清除一遍?就是扫把那个图标 ...


不好意思,昨天解决了,用的默认安装路径“Program Files中间有个空格,修改安装路径重新安装就好。谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出5入10汤圆

发表于 2021-1-7 09:00:14 | 显示全部楼层
楼主高人一个,搞个开发板出来吧,我来给你当助手,画画板子,写写单片机程序啥的,楼主你指导一下就行了

出40入42汤圆

 楼主| 发表于 2021-1-8 12:44:51 | 显示全部楼层
PCBtiepian 发表于 2021-1-7 09:00
楼主高人一个,搞个开发板出来吧,我来给你当助手,画画板子,写写单片机程序啥的,楼主你指导一下就行了{: ...

谢谢你的提议
不过目前实现的功能还不够,且没有一个清晰的硬件需求思路
后面看有没有人感兴趣吧,到时候一起讨论可行性

出0入0汤圆

发表于 2021-1-16 19:05:55 | 显示全部楼层
PCBtiepian 发表于 2021-1-7 09:00
楼主高人一个,搞个开发板出来吧,我来给你当助手,画画板子,写写单片机程序啥的,楼主你指导一下就行了{: ...




可以众筹!  


出0入0汤圆

发表于 2021-1-16 19:08:52 | 显示全部楼层
有开源的解释型plc 吗?

出40入42汤圆

 楼主| 发表于 2021-1-16 20:21:27 | 显示全部楼层
citroen988 发表于 2021-1-16 19:08
有开源的解释型plc 吗?

论坛以前有做一个开源的兼容三菱FX的底层项目,那个是解析型的,不过只有下位机底层,完整的开源解析型PLC项目还没有接触过

出0入0汤圆

发表于 2021-1-18 08:28:21 | 显示全部楼层
落叶知秋 发表于 2021-1-16 20:21
论坛以前有做一个开源的兼容三菱FX的底层项目,那个是解析型的,不过只有下位机底层,完整的开源解析型PL ...


PLC解释性的通用性更好点!~

出0入0汤圆

发表于 2021-1-23 09:55:51 | 显示全部楼层
LZ您好,IDE里面Modbus在哪儿添加?

出40入42汤圆

 楼主| 发表于 2021-1-23 11:01:49 来自手机 | 显示全部楼层
zhou_taotb 发表于 2021-1-23 09:55
LZ您好,IDE里面Modbus在哪儿添加?

按照目录里有个例程的,可以对着看
简单来说就是,左侧导航栏添加modbus的配置节点,然后添加本地变量,再单击变量的位置属性那里,可以弹出选择modbus配置数据的页面

出0入0汤圆

发表于 2021-1-23 11:14:17 | 显示全部楼层
哦哦,您好,IDE编译环境和源码您那有吗?

出40入42汤圆

 楼主| 发表于 2021-1-23 14:24:49 | 显示全部楼层
zhou_taotb 发表于 2021-1-23 11:14
哦哦,您好,IDE编译环境和源码您那有吗?

安装包里就是源码,Python的

出0入0汤圆

发表于 2021-1-23 21:10:03 | 显示全部楼层
本帖最后由 zhou_taotb 于 2021-1-23 21:11 编辑

哦哦,这个安装包是exe的,安装完后,就是源码吗?用什么软件打开修改然后再生成exe的?想跟着楼主学习一下,不太懂这个,多谢啦哈

出40入42汤圆

 楼主| 发表于 2021-1-23 22:49:24 | 显示全部楼层
zhou_taotb 发表于 2021-1-23 21:10
哦哦,这个安装包是exe的,安装完后,就是源码吗?用什么软件打开修改然后再生成exe的?想跟着楼主学习一下 ...

打包软件是NSIS

本来就是Python源码,直接解析运行的,安装包里也包含了Python2.7的解释器,编辑代码随便一个编辑器就可以,LZ是用VS Code

出0入0汤圆

发表于 2021-1-24 09:49:59 | 显示全部楼层
本帖最后由 zhou_taotb 于 2021-1-24 09:51 编辑

LZ,我怎么换安装路径都不能避免这个错误,能帮看看是那部分出错了吗,按照20楼的方法并不行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出40入42汤圆

 楼主| 发表于 2021-1-24 12:15:29 来自手机 | 显示全部楼层
zhou_taotb 发表于 2021-1-24 09:49
LZ,我怎么换安装路径都不能避免这个错误,能帮看看是那部分出错了吗,按照20楼的方法并不行
...

看上去跟20楼的一样,试一下直接安装在盘符下面吧,这个问题我后面查查是不是gcc的原因

出0入0汤圆

发表于 2021-1-29 15:33:20 | 显示全部楼层
大神厉害

出0入0汤圆

发表于 2021-2-1 08:47:50 | 显示全部楼层
PLCopen 运动控制源码在哪下载

出0入0汤圆

发表于 2021-2-13 01:46:13 | 显示全部楼层
您好LZ,下载RTE后,103mini的板子是DS0和DS1双闪6下就常亮吗?我下载您那个PLC实例程序先显示传输失败,后就是 plc disconnected了,能给指点是啥原因吗?多谢啦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出40入42汤圆

 楼主| 发表于 2021-2-13 21:41:07 来自手机 | 显示全部楼层
zhou_taotb 发表于 2021-2-13 01:46
您好LZ,下载RTE后,103mini的板子是DS0和DS1双闪6下就常亮吗?我下载您那个PLC实例程序先显示传输失败,后 ...

rte正常运行红灯会闪烁
看图片是串口号不对,对应自己的电脑来修改工程的串口号

出0入0汤圆

发表于 2021-2-14 03:09:17 | 显示全部楼层
嗯嗯,基本上已经跑起来了,多谢,楼主是实现了modbusrtu从站的功能,实现主站能大体指导下思路吗?这几天也没有头绪下手

出0入0汤圆

发表于 2021-2-14 03:11:20 | 显示全部楼层
落叶知秋 发表于 2021-2-13 21:41
rte正常运行红灯会闪烁
看图片是串口号不对,对应自己的电脑来修改工程的串口号 ...

嗯嗯,基本上已经跑起来了,多谢,楼主是实现了modbusrtu从站的功能,实现主站能大体指导下思路吗?这几天也没有头绪下手

出40入42汤圆

 楼主| 发表于 2021-2-14 14:21:56 来自手机 | 显示全部楼层
zhou_taotb 发表于 2021-2-14 03:11
嗯嗯,基本上已经跑起来了,多谢,楼主是实现了modbusrtu从站的功能,实现主站能大体指导下思路吗?这几 ...

最简单的就是用地址来区分读写的线圈和寄存器,然后界面跟从站差不多的,加个主站的选项,底层实现通信和报错就行了

出0入0汤圆

发表于 2021-2-16 11:24:16 | 显示全部楼层
落叶知秋 发表于 2021-2-14 14:21
最简单的就是用地址来区分读写的线圈和寄存器,然后界面跟从站差不多的,加个主站的选项,底层实现通信和 ...


楼主,我要是修改BeremizIDE的话,VS里面需要安装wxPython吗?还是Python2.7就是可以,您的modbus从站我看是用的USART3的PB10,11,PB13是控制脚,我外接了485板,通过modbus poll测试,接收不到数据,能指导一下如何测试的吗?能给指点一下吗?麻烦了,多谢了

出0入0汤圆

发表于 2021-2-16 14:59:28 | 显示全部楼层
厉害,楼主牛人

出40入42汤圆

 楼主| 发表于 2021-2-16 20:51:19 来自手机 | 显示全部楼层
zhou_taotb 发表于 2021-2-16 11:24
楼主,我要是修改BeremizIDE的话,VS里面需要安装wxPython吗?还是Python2.7就是可以,您的modbus从站我 ...

我发的安装包里已经包括了wxPython,直接改源码就行了
串口的话,我测试是没问题的,不过是rs232的,接485的话,要把rts也使能,如果不熟悉的话,建议还是用232测试吧

出0入0汤圆

发表于 2021-2-21 17:35:53 | 显示全部楼层
落叶知秋 发表于 2021-2-16 20:51
我发的安装包里已经包括了wxPython,直接改源码就行了
串口的话,我测试是没问题的,不过是rs232的,接48 ...

楼主,最近这几天一直忙,没顾上来论坛,rs232我找了根好的线试了一下,没成功,能告诉一下如何接线吗板上的哪几根线接USB转232接口的哪几个管脚,我想测试完好了再改动,慢慢添加主站等,多谢了哈,我最近在往里添加一些IO的设备,等成熟了也传上论坛来供大家参考,多谢啦哈

出40入42汤圆

 楼主| 发表于 2021-2-22 08:41:41 | 显示全部楼层
zhou_taotb 发表于 2021-2-21 17:35
楼主,最近这几天一直忙,没顾上来论坛,rs232我找了根好的线试了一下,没成功,能告诉一下如何接线吗板 ...

如果是正点的103mini板的话,我记得是用ttl转USB的线测试的,不用经过rs232的电平转换

出0入0汤圆

发表于 2021-2-22 09:47:19 | 显示全部楼层
本帖最后由 zhou_taotb 于 2021-2-22 09:54 编辑
落叶知秋 发表于 2021-2-22 08:41
如果是正点的103mini板的话,我记得是用ttl转USB的线测试的,不用经过rs232的电平转换 ...


是正点的原装MIni板,USART3的PB10,PB11,PB13这三个吗?TTL转USB的RXD,TXD,RTS,CTS这四个管脚都接吗?这段时间是陷在这儿了

出40入42汤圆

 楼主| 发表于 2021-2-22 11:02:02 | 显示全部楼层
zhou_taotb 发表于 2021-2-22 09:47
是正点的原装MIni板,USART3的PB10,PB11,PB13这三个吗?TTL转USB的RXD,TXD,RTS,CTS这四个管脚都接吗?这 ...

直接用串口的tx和rx就好了,就是PB10和PB11,如果外接485的话,就把PB13也用上

当初自测的时候,用TTL转USB,只接了RXD和TXD,然后电脑用Modbus Poll就可以进行通信了,不用设置RTS那些,记得数字地要接一下的

出0入0汤圆

发表于 2021-2-22 11:10:12 | 显示全部楼层
本帖最后由 zhou_taotb 于 2021-2-22 11:16 编辑
落叶知秋 发表于 2021-2-22 11:02
直接用串口的tx和rx就好了,就是PB10和PB11,如果外接485的话,就把PB13也用上

当初自测的时候,用TTL转 ...


好的,晚上回家试一下,这会上班不方便,真的非常感谢,老打扰您 有不明白的再请教您哈

出0入0汤圆

发表于 2021-2-25 15:42:25 | 显示全部楼层
本帖最后由 klwanghao 于 2021-2-25 18:04 编辑
落叶知秋 发表于 2021-2-22 11:02
直接用串口的tx和rx就好了,就是PB10和PB11,如果外接485的话,就把PB13也用上

当初自测的时候,用TTL转 ...


楼主您好,想跟您交流一下,我们公司想开这个项目,想请您做我们公司顾问,我的邮箱是klwanghao@126.com,我的qq是395237340。希望能和您电话联系一下,能发一下联系方式给我邮箱。本人及公司在深圳。。。您可以告诉我您什么时间方便,我才打给您。。。

出0入0汤圆

发表于 2021-3-2 13:40:35 | 显示全部楼层
zhou_taotb 发表于 2021-2-22 11:10
好的,晚上回家试一下,这会上班不方便,真的非常感谢,老打扰您 有不明白的再请教您哈 ...

测试成功了哈,就是从IDE软件里修改modbus地址和通讯方式不起作用,只有波特率可以,能简单说一下如何修改让他们起作用吗?

出40入42汤圆

 楼主| 发表于 2021-3-2 18:48:38 | 显示全部楼层
zhou_taotb 发表于 2021-3-2 13:40
测试成功了哈,就是从IDE软件里修改modbus地址和通讯方式不起作用,只有波特率可以,能简单说一下如何修 ...

你可以描述再详细些,或者配点图片,我不太明白你说的是什么意思

出0入0汤圆

发表于 2021-5-12 22:50:08 | 显示全部楼层
落叶知秋 发表于 2021-3-2 18:48
你可以描述再详细些,或者配点图片,我不太明白你说的是什么意思  ...

能共享一下制作封包安装包的上位机TOOLs的经验吗?

出0入0汤圆

发表于 2021-6-19 06:52:30 | 显示全部楼层
有点意思,学习型项目

出0入0汤圆

发表于 2021-6-22 17:08:07 | 显示全部楼层
想请教下楼主,这个运动控制支持电子凸轮功能吗?或者有推荐的运动控制参考?

出40入42汤圆

 楼主| 发表于 2021-6-22 19:17:43 | 显示全部楼层
canberry001 发表于 2021-6-22 17:08
想请教下楼主,这个运动控制支持电子凸轮功能吗?或者有推荐的运动控制参考? ...

本帖的项目目前给出的功能不支持电子凸轮。

电子凸轮的话看一下论文和算一下5次多项式就能搞定算法了,还有些功能细节需要完善好。

出0入0汤圆

发表于 2021-6-23 09:44:15 | 显示全部楼层
落叶知秋 发表于 2021-6-22 19:17
本帖的项目目前给出的功能不支持电子凸轮。

电子凸轮的话看一下论文和算一下5次多项式就能搞定算法了, ...

好的,谢谢楼主热心回复

出0入0汤圆

发表于 2021-8-20 15:14:47 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2021-9-18 14:59:00 | 显示全部楼层
小白请教大神,源码里i8n文件夹是干什么用呢?怎么生成出来的啊?谢谢!

出40入42汤圆

 楼主| 发表于 2021-9-19 22:29:16 | 显示全部楼层
minty0623 发表于 2021-9-18 14:59
小白请教大神,源码里i8n文件夹是干什么用呢?怎么生成出来的啊?谢谢!

i18n就是多国语言的转换文件,代码里面会自动替换要显示的相关字符串
.pot文件就是一个规范,一般都是要显示的文本的英文id
.po文件就是对应.pot文件里面的规范,用不同的语言进行字符翻译的文件,直接在编辑器里面修改就好了

出0入0汤圆

发表于 2021-9-22 09:14:07 | 显示全部楼层
落叶知秋 发表于 2021-9-19 22:29
i18n就是多国语言的转换文件,代码里面会自动替换要显示的相关字符串
.pot文件就是一个规范,一般都是要 ...

原来是这样,谢谢您嘞

出0入0汤圆

发表于 2021-10-8 09:53:12 | 显示全部楼层
大神,请教关于运动控制的问题:
1.在POU.xml中添加了运动控制的功能块配置,但是具体运动控制的算法在哪里实现呢?(在您提供的python源码中没有找到)
2.您提供的DYPLC_RTE,这个工程是runtime环境吗?为什么和IDE是分离开的呢?编译运行流程是啥样的呢?请您指点一下。(我一直以为的beremiz中runtime是和ide一样用python实现的,在硬件上运行runtime即可)
3.我看kosmos的ide源码,motionlibrary下有MotionKernelLinux.o这种文件,这是用来做什么的,怎么用呀?

我的问题有些多,也是最近看源码看得迷糊,望您不吝赐教,谢谢啦~

出40入42汤圆

 楼主| 发表于 2021-10-8 11:39:11 | 显示全部楼层
minty0623 发表于 2021-10-8 09:53
大神,请教关于运动控制的问题:
1.在POU.xml中添加了运动控制的功能块配置,但是具体运动控制的算法在哪里 ...

1. 我提供的demo,运动控制算法在runtime里面,就是rte那个压缩包里;
2. runtime和ide分离是一般的做法的,runtime一般都是用移植性比较好的编程语言实现,比如C,我提供的demo,runtime是在MCU里面跑的,所以要分离;
3. MotionKernelLinux.o这种编译好的中间文件,就是运动控制算法对应不同平台的编译中间件,选择不同平台时,会根据平台来将对应的xxx.o文件作为编译源来编译成runtime执行文件。

上传了一个附件,里面时beremiz的宣讲稿,可以看一下里面的大概软件工作流程。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-10-8 14:03:28 | 显示全部楼层
关注!感谢分享!

出0入0汤圆

发表于 2021-10-8 15:51:58 | 显示全部楼层
落叶知秋 发表于 2021-10-8 11:39
1. 我提供的demo,运动控制算法在runtime里面,就是rte那个压缩包里;
2. runtime和ide分离是一般的做法 ...

谢谢您的解答!
1. .KOSMOS中的.o文件算法是给runtime用的吗?还是在IDE中调用算法并编译好再发给runtime直接运行?
2.您的算法独立用C写的,那IDE编译后发送给runtime的是啥东东?是如何通知runtime执行的呢?
3. 不知道KOSMOS关于控制算法这块开源不,能把.o直接拿来用吗?里面的接口不知道怎么用哇,莫非算法都得自己写?

我对单片机不熟悉,目前的想法是在源码基础上做一个双轴的运动控制在Linux板卡上跑,也是用python写(因为C不太熟练),IDE的开发流程基本明确,就是RTE开发如果也用python就不知道怎么办了,您有好的建议吗?

出40入42汤圆

 楼主| 发表于 2021-10-8 18:33:18 | 显示全部楼层
minty0623 发表于 2021-10-8 15:51
谢谢您的解答!
1. .KOSMOS中的.o文件算法是给runtime用的吗?还是在IDE中调用算法并编译好再发给runtime ...

1. 就beremiz本来的设计,IDE是生成App程序的C文件,然后【target】目录下有一套runtime的框架C文件,
    在IDE上进行编译的时候,会把App的C文件和runtime的框架C文件,一起编译成二进制执行程序,win平台下是一个动态库DLL,
    最后IDE启动PLC的时候,会加载这个DLL直接运行。KOSMOS中的.o文件就是在编译的时候,配合App和runtime里面的相关接口使用的,
 可以把.o文件看作一個runtime的一部分。

2. 我给出的demo里,IDE发给下位机的是App程序的C文件编译后的二进制数据,runtime是在MCU里面跑的,所以runtime和App之间要有交互接口。

3. 直接把.o拿来用也可以的,只要你是用同样的接口和平台。里面的接口都可以通过IDE编译之后,项目目录下的【build】里面的源码来看到。

出40入42汤圆

 楼主| 发表于 2021-10-8 19:00:42 | 显示全部楼层
minty0623 发表于 2021-10-8 15:51
谢谢您的解答!
1. .KOSMOS中的.o文件算法是给runtime用的吗?还是在IDE中调用算法并编译好再发给runtime ...

用python写runtime也不是不可以啊,只要你用python能够与实际的电机进行交互,然后按照runtime的一些套路,或者自己定一套接口,就可以了

不过要解决的问题有几个:
1. beremiz的PLC程序是会编译成C文件的,用python调用的话,还是要对交叉调用熟悉起来;你也可以自己写个编译器,将PLC程序编译成python的,不过不推荐
2. 在Linux下与电机的交互接口,怎么跟python对接;
3. 在明白runtime与IDE的交互流程后,重新用python写一套框架。

使用C语言,就是比较方便操作硬件,以及移植性好,能够克服这两点的话,用啥语言实现都可以

出0入0汤圆

发表于 2021-10-9 11:38:21 | 显示全部楼层
落叶知秋 发表于 2021-10-8 19:00
用python写runtime也不是不可以啊,只要你用python能够与实际的电机进行交互,然后按照runtime的一些套路 ...

您提出的这几条问题我都没法解决。。。所以决定学习您实现的思路,先跑起来。
但是kosmos是怎么弄得runtime呢?莫非也是独立写的但是没发布出来么?
大神,您提供的DYPLC源码中,dyplcconnectors内部的【targets】【runtime】和dyplctargets这有什么用处,我没看懂。

出40入42汤圆

 楼主| 发表于 2021-10-9 13:44:04 | 显示全部楼层
minty0623 发表于 2021-10-9 11:38
您提出的这几条问题我都没法解决。。。所以决定学习您实现的思路,先跑起来。
但是kosmos是怎么弄得runti ...

kosmos的runtime就是beremiz原来的用的那套,不过加了总线驱动和运动控制算法,
总线的是用的开源igh的,这里不说,运动控制算法就是我发的demo里面的东西,PLCopen的第1/2部分那套

beremiz的【runtime】目录就是用来启动软PLC的方法,通过命令行调用编译出来的执行文件,具体没细看,你可以研究一下;
【targets】目录就是编译成执行文件的C源码模板,里面有不同平台对应的接口

出0入0汤圆

发表于 2021-10-9 15:40:09 | 显示全部楼层
落叶知秋 发表于 2021-10-9 13:44
kosmos的runtime就是beremiz原来的用的那套,不过加了总线驱动和运动控制算法,
总线的是用的开源igh的, ...

好的,受教了!我再好好研究一下您提供的源码,十分感谢!

出0入0汤圆

发表于 2021-11-1 15:53:35 | 显示全部楼层
学习学习 楼主nb

出135入222汤圆

发表于 2021-11-1 20:03:50 | 显示全部楼层
有支持Beremiz的商品PLC卖吗?

出40入42汤圆

 楼主| 发表于 2021-11-1 21:02:08 | 显示全部楼层
lyping1987 发表于 2021-11-1 20:03
有支持Beremiz的商品PLC卖吗?

有的,国外有几家,国内北京有一家。其他的倒是没有见过有正式宣传过商业化的

出0入0汤圆

发表于 2021-11-1 21:18:59 | 显示全部楼层
落叶知秋 发表于 2021-11-1 21:02
有的,国外有几家,国内北京有一家。其他的倒是没有见过有正式宣传过商业化的 ...

国内北京的这家,叫什么名字? 方便透露一下吗?

出135入222汤圆

发表于 2021-11-2 00:11:31 | 显示全部楼层
我从墙外把部分视频教程搬进来了,放在B站。

想学习的可以看看  https://www.bilibili.com/video/BV1jQ4y1S7rB/

出40入42汤圆

 楼主| 发表于 2021-11-2 14:00:46 来自手机 | 显示全部楼层
oldca9001 发表于 2021-11-1 21:18
国内北京的这家,叫什么名字? 方便透露一下吗?

这个是网页:
http://kaikong.kaikong.cn/content/1004

出0入0汤圆

发表于 2021-12-4 15:16:56 来自手机 | 显示全部楼层
我看了楼主的beremiz的文档分析;beremiz平台编译好的bin文件下载到STM32平台上,需要调用STM32 flash.exe来下载吗?如果换不同的MCU就需要调用不同MCU的flash工具来下载对吗?

出40入42汤圆

 楼主| 发表于 2021-12-5 00:45:38 | 显示全部楼层
caillet 发表于 2021-12-4 15:16
我看了楼主的beremiz的文档分析;beremiz平台编译好的bin文件下载到STM32平台上,需要调用STM32 flash.exe ...

不需要调用另外的程序来下载beremiz编译好的bin文件,固件程序里面有个通信协议来处理这部分文件的下载

出0入0汤圆

发表于 2021-12-9 11:09:13 | 显示全部楼层
大神,请问用beremiz在树莓派上运行RTE,那我想接一个轴来控制,IDE是怎么识别到这个外接设备的,有什么配置吗?

出40入42汤圆

 楼主| 发表于 2021-12-9 13:42:51 | 显示全部楼层
minty0623 发表于 2021-12-9 11:09
大神,请问用beremiz在树莓派上运行RTE,那我想接一个轴来控制,IDE是怎么识别到这个外接设备的,有什么配 ...
IDE是怎么识别到这个外接设备的

首先,这个外接设备指的是什么,是轴,还是树莓派?
其次,轴是总线轴还是脉冲轴?

如果设备指的是运行RTE的树莓派,那么只要有支持IDE与RTE之间通信的介质,然后协议处理好就行了;
如果设备指的是轴,那么识别只能是说总线轴了,那就是总线轴的协议问题了

出0入0汤圆

发表于 2021-12-9 15:21:06 | 显示全部楼层
落叶知秋 发表于 2021-12-9 13:42
首先,这个外接设备指的是什么,是轴,还是树莓派?
其次,轴是总线轴还是脉冲轴?

不好意思,让您产生歧义了
这个外接设备是指外接的总线轴,我把beremiz的runtime放在一块板子上跑,然后就找了个轴想测一测运动控制。
但是,当我使用IDE进行轴运动控制配置的时候,IDE或者runtime是怎么识别到这个轴的地址呢,我没找到相关代码的位置,请您赐教!

出0入0汤圆

发表于 2021-12-9 16:12:20 | 显示全部楼层
落叶知秋 发表于 2021-12-9 13:42
首先,这个外接设备指的是什么,是轴,还是树莓派?
其次,轴是总线轴还是脉冲轴?

大神,还有个运动库开发问题:在pous.xml里已经定义一个数据类型MC_REAL_ARRAY,但是编译报错找不到此类型,我发现Pous.h文件当中的确没有这个数据类型,请问一下这是因为什么呢?请您指点!




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出40入42汤圆

 楼主| 发表于 2021-12-9 19:18:00 | 显示全部楼层
minty0623 发表于 2021-12-9 15:21
不好意思,让您产生歧义了
这个外接设备是指外接的总线轴,我把beremiz的runtime放在一块板子上 ...

总线轴的话,需要自己写个驱动,如果ethercat的总线轴,就要有ECAT主站的协议,然后将轴的信息挂接到运动控制库里面去

出40入42汤圆

 楼主| 发表于 2021-12-9 19:20:02 | 显示全部楼层
minty0623 发表于 2021-12-9 16:12
大神,还有个运动库开发问题:在pous.xml里已经定义一个数据类型MC_REAL_ARRAY,但是编译报错找不到此类 ...

你这个工程里面用的库,应该是自己找的吧?
其实这个数据类型都用不着的,如果是kosmos那个库的话

出0入0汤圆

发表于 2021-12-10 08:24:55 | 显示全部楼层
落叶知秋 发表于 2021-12-9 19:20
你这个工程里面用的库,应该是自己找的吧?
其实这个数据类型都用不着的,如果是kosmos那个库的话 ...

这个pous是从kosmos那里拿过来的,对应的.o文件也是kosmos的,但是我一编译就报这个错误。。。。
我把上文提到的参数给剔除掉还是会有这个问题,不知道到底哪里出问题了

出40入42汤圆

 楼主| 发表于 2021-12-10 09:12:25 | 显示全部楼层
minty0623 发表于 2021-12-10 08:24
这个pous是从kosmos那里拿过来的,对应的.o文件也是kosmos的,但是我一编译就报这个错误。。。。
我把上 ...

MC_REAL_ARRAY这个类型如果在pous.xml里面定义了,就应该会生成到POUS.h文件里面的
如果想不报这个错误,要在MotionLibrary.py文件里面,把相关的生成motion.c文件的Headers字符串删掉

出0入0汤圆

发表于 2021-12-10 15:19:36 | 显示全部楼层
落叶知秋 发表于 2021-12-10 09:12
MC_REAL_ARRAY这个类型如果在pous.xml里面定义了,就应该会生成到POUS.h文件里面的
如果想不报这个错误, ...

已经能成功编译并运行了,谢谢大神!

出0入0汤圆

发表于 2021-12-20 10:28:40 | 显示全部楼层
大神,目前我在Ubuntu上做arm的交叉编译,频繁出错。我是将Kosmos源码中的Linux_ARM 文件夹全部放到了beremiz的targets文件夹下,当我进行编译时,遇到很多错误。(我已经安装了arm-linux-gnueabihf)  这些问题我向周围人寻求过解答,奈何做过beremiz的人少之又少,所以又得麻烦您帮忙看一下,不胜感激!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出40入42汤圆

 楼主| 发表于 2021-12-20 16:29:05 | 显示全部楼层
minty0623 发表于 2021-12-20 10:28
大神,目前我在Ubuntu上做arm的交叉编译,频繁出错。我是将Kosmos源码中的Linux_ARM 文件夹全部放到了berem ...

图3的错误是没有找到文件夹路径,应该是kosmos需要附带的一些库,比如ethercat和实时补丁之类的,这个需要按照要求去安装
不过我也没有用过kosmos,里面依赖的东西也不太清楚,当初也是嫌这个和那个太乱才重新整理一个版本的
不建议你在kosmos这个平台上多花时间,因为那个平台资料说明不全,而且已经没有维护,也基本找不到出处

出0入0汤圆

发表于 2021-12-20 17:34:28 | 显示全部楼层
落叶知秋 发表于 2021-12-20 16:29
图3的错误是没有找到文件夹路径,应该是kosmos需要附带的一些库,比如ethercat和实时补丁之类的,这个需 ...

嗯,最近一周看kosmos想从这上面找到交叉编译的方法,现在看是不可行了
我手里只有一个野火的板子,上面是Debian,我的目标是交叉编译能过,并把程序跑起来。
如果用您做的DYPLC,IDE是不是增加一个arm的交叉编译就行?但是runtime怎么办呢?

出40入42汤圆

 楼主| 发表于 2021-12-21 10:41:57 | 显示全部楼层
minty0623 发表于 2021-12-20 17:34
嗯,最近一周看kosmos想从这上面找到交叉编译的方法,现在看是不可行了
我手里只有一个野火的板子 ...

我整理的那个版本是针对单片机的,不太适合带OS的
如果你是以学习为目标的话,建议先用官网上的版本来跑一下,等到熟悉了beremiz的框架机制后,可以再来整一下kosmos

出0入0汤圆

发表于 2021-12-21 14:38:38 | 显示全部楼层
落叶知秋 发表于 2021-12-21 10:41
我整理的那个版本是针对单片机的,不太适合带OS的
如果你是以学习为目标的话,建议先用官网上的版本来跑 ...

十分感谢您无私的帮助!
刚刚尝试了官网版本源码加入交叉编译,IDE是编译过了,传输到Debian就报错,PLC没法安装。。。。
还是继续撸源码吧,我想总会找到方法哒

出40入42汤圆

 楼主| 发表于 2021-12-21 16:02:29 | 显示全部楼层
minty0623 发表于 2021-12-21 14:38
十分感谢您无私的帮助!
刚刚尝试了官网版本源码加入交叉编译,IDE是编译过了,传输到Debian就报错,PLC ...

可以查一下仓库的issue,和开发者mailist的内容,看有没有类似的问题被提出过

出0入0汤圆

发表于 2022-1-19 10:03:30 | 显示全部楼层
感谢高手大湿  无私奉献 分享

出0入0汤圆

发表于 2022-1-24 11:07:14 | 显示全部楼层
本帖最后由 caillet 于 2022-1-24 11:08 编辑

点击报错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出40入42汤圆

 楼主| 发表于 2022-1-24 14:29:58 | 显示全部楼层

看上去是Python库shutil.py模块出问题了
安装过程有没有出错什么的?看一下安装目录下的文件是否存在?

出40入42汤圆

 楼主| 发表于 2022-1-24 14:32:15 | 显示全部楼层

或者是不是工程所在的目录被设置成“只读”属性,或者需要管理员权限之类的?

出0入0汤圆

发表于 2022-1-26 12:51:23 | 显示全部楼层
落叶知秋 发表于 2022-1-24 14:32
或者是不是工程所在的目录被设置成“只读”属性,或者需要管理员权限之类的? ...

是系统权限问题,感谢

出0入0汤圆

发表于 2022-4-21 16:57:53 | 显示全部楼层
本帖最后由 浪矢杂货 于 2022-4-21 17:10 编辑

楼主,在学习beremiz IDE/RTE的过程中,我同样使用正点原子的开发板,STM32F103ZET6芯片,使用USB转串口CH340,在BOOT和RTE的下载过程正常,IDE编译下载test程序正常,IDE连接开发板,始终显示PLC disconnected。请问您是如何实现串口连接和JLINK在线仿真的呢?

出0入0汤圆

发表于 2022-4-21 17:09:45 | 显示全部楼层
楼主,首先表示敬意,感谢分享。
在学习过程中,我同样使用了正点原子的STM32F103开发板,使用USB转串口(CH340驱动)下载BOOT/RTE程序,正常。IDE编译正常,在连接PLC时,同样使用USB转串口的com,始终显示PLC disconnected。确认过串口设置均正常,请问您是否遇到过同样问题?另外,您如何实现串口程序下载和JLINK在线debug的呢?
烦请指导,谢谢!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-6-26 19:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表