搜索
bottom↓
12
返回列表 发新帖
楼主: 落叶知秋

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

  [复制链接]

出40入42汤圆

 楼主| 发表于 2022-4-21 17:42:57 来自手机 | 显示全部楼层
浪矢杂货 发表于 2022-4-21 17:09
楼主,首先表示敬意,感谢分享。
在学习过程中,我同样使用了正点原子的STM32F103开发板,使用USB转串口(C ...

(引用自100楼)

1. rte是否正常跑起来了?有个灯会提示的
2. 确认rte跑起来后,电脑串口连开发板,是否与plc连接成功过?
3. jlink的在线debug,我给出的rte的keil工程在下载成功后,直接进入仿真模式就可以了

出40入42汤圆

 楼主| 发表于 2022-4-21 17:59:31 来自手机 | 显示全部楼层
浪矢杂货 发表于 2022-4-21 17:09
楼主,首先表示敬意,感谢分享。
在学习过程中,我同样使用了正点原子的STM32F103开发板,使用USB转串口(C ...

(引用自100楼)

电脑串口,需要知道用的哪个com口,然后把com口的号写入到工程的配置页面里面

出0入0汤圆

发表于 2022-4-21 19:05:31 | 显示全部楼层
落叶知秋 发表于 2022-4-21 17:59
电脑串口,需要知道用的哪个com口,然后把com口的号写入到工程的配置页面里面 ...
(引用自102楼)

感谢指导,我再去试验一下

出0入0汤圆

发表于 2022-4-21 22:27:52 | 显示全部楼层
落叶知秋 发表于 2022-4-21 17:59
电脑串口,需要知道用的哪个com口,然后把com口的号写入到工程的配置页面里面 ...
(引用自102楼)

楼主,根据您的指导,我完整运行出程序,谢谢!
借层楼填坑,避免后面朋友遇到同样问题。
1.对于STM系列开发板进行程序修改,是很重要的
2.修改好的BOOT、RTE程序,生产HEX文件,尽量不要用串口下载工具(如FLYMCU)下载,推荐MDK通过JLINK下载。因为,串口工具下载BOOT时运行正常,再下载RTE很可能运行不起来,初步判断是串口下载工具会按照默认软件配置,先擦除FLAH,再烧入新程序,在存储地址可能是重叠的。
3.Beremiz的IDE,在编译test工程时,可能会将COM口恢复为上一次COM口配置,出现报错。建议先填写COM口,保存后关闭,重新打开工程,连接时会显示正常。
4.win7/win10运行IDE时,如果出现编译未响应,首先考虑前面楼层提供的dll,再考虑IDE设置为win7兼容、管理员身份运行。

出0入0汤圆

发表于 2022-4-22 11:16:37 | 显示全部楼层
大神,问一个CAN总线的问题:
我用beremiz自带的CAN与轴进行通信,编译通过了,但是状态字根本没变化,分析仪抓数据发现我根本没发送出去数据。。。。
我用的can_socket,做主站,从站是轴,本地参数与EDS已经绑定,[img][/img]请问还需要什么其他的设置吗?

本帖子中包含更多资源

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

x

出40入42汤圆

 楼主| 发表于 2022-4-22 13:59:57 来自手机 | 显示全部楼层
minty0623 发表于 2022-4-22 11:16
大神,问一个CAN总线的问题:
我用beremiz自带的CAN与轴进行通信,编译通过了,但是状态字根本没变化,分析 ...

(引用自105楼)

没用过beremiz自带的canopen功能,不知道里面是怎么实现的,只能建议你看里面的代码了。
图片里是在电脑上运行的软plc?是的话,那得绑定CAN卡驱动之类的吧

出0入0汤圆

发表于 2022-4-22 16:08:44 | 显示全部楼层
落叶知秋 发表于 2022-4-22 13:59
没用过beremiz自带的canopen功能,不知道里面是怎么实现的,只能建议你看里面的代码了。
图片里是在电脑 ...
(引用自106楼)

嗯,那我继续看源码吧,谢啦~

出0入0汤圆

发表于 2022-4-24 09:16:25 | 显示全部楼层
非常感谢 虚心学习

出0入0汤圆

发表于 2022-5-10 15:17:10 | 显示全部楼层
大神您好,Motion FB的源码可以分享下嘛

出40入42汤圆

 楼主| 发表于 2022-5-10 18:13:03 来自手机 | 显示全部楼层
zhouxq 发表于 2022-5-10 15:17
大神您好,Motion FB的源码可以分享下嘛
(引用自109楼)

帖子里面的都有给出源码

出0入0汤圆

发表于 2022-6-30 22:44:28 来自手机 | 显示全部楼层
楼主,最近有规划更新吗?

出40入42汤圆

 楼主| 发表于 2022-7-1 08:38:03 | 显示全部楼层
caillet 发表于 2022-6-30 22:44
楼主,最近有规划更新吗?
(引用自111楼)

最近没有计划更新,一是现在业余没什么时间,二是对国内开源氛围失望了

出0入0汤圆

发表于 2022-7-30 23:32:09 来自手机 | 显示全部楼层
楼主,最近有还在研究berwmuz吗?

出0入0汤圆

发表于 2022-7-30 23:34:58 来自手机 | 显示全部楼层
最近找了一圈,beremiz算开源PLC里不错的了,楼主最近有新的研究吗?

出0入0汤圆

发表于 2022-10-26 18:52:25 | 显示全部楼层
caillet 发表于 2022-7-30 23:34
最近找了一圈,beremiz算开源PLC里不错的了,楼主最近有新的研究吗?
(引用自114楼)

各位大佬,这个怎么处理。

本帖子中包含更多资源

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

x

出40入42汤圆

 楼主| 发表于 2022-10-27 08:53:32 | 显示全部楼层
caillet 发表于 2022-10-26 18:52
各位大佬,这个怎么处理。
(引用自115楼)

看上去像是bitmap的解析出现问题了,不知道是你电脑缺库了还是安装的有问题,试一下重装软件,还不行的话,根据错误提示找找原因

出0入0汤圆

发表于 2022-10-27 22:22:30 | 显示全部楼层
楼主好,请问stm32f103xC-rte.ld文件中各个段存储地址设置的时候大体应该是什么规则?我对照了一下好像RAM跟RTE工程头文件中定义的也没有完全一致,感谢!

出40入42汤圆

 楼主| 发表于 2022-10-28 15:04:52 | 显示全部楼层
IwIoT 发表于 2022-10-27 22:22
楼主好,请问stm32f103xC-rte.ld文件中各个段存储地址设置的时候大体应该是什么规则?我对照了一下好像RAM ...
(引用自117楼)

stm32f103xC-rte.ld这个文件没有用到,只有stm32f103xC-app.ld这个文件被上位机用到了,
之所以存在stm32f103xC-rte.ld这个文件,是因为参考的项目YAPLC是全部采用gcc来编译和开发的,
硬件板子烧录的RTE是由这个LD文件生成的固件,之所以没删掉可能是因为我懒的删,
这个帖子DYPLC的下位机工程是用keil的,而且多了个boot,跟YAPLC还是有区别的

出0入0汤圆

发表于 2022-10-31 22:10:15 | 显示全部楼层
落叶知秋 发表于 2022-10-28 15:04
stm32f103xC-rte.ld这个文件没有用到,只有stm32f103xC-app.ld这个文件被上位机用到了,
之所以存在stm32 ...
(引用自118楼)

感谢解惑!
在读您的代码的时候,发现IDE里面关于RTE_ADDR的相关定义是通过程序传入的,有一个0x****8130地址,然后RTE工程中对应的宏是0x****8000,请问这两个是否需要严格对应?或者是我找的位置是不对的呢 感谢!

出40入42汤圆

 楼主| 发表于 2022-11-1 09:15:25 | 显示全部楼层
IwIoT 发表于 2022-10-31 22:10
感谢解惑!
在读您的代码的时候,发现IDE里面关于RTE_ADDR的相关定义是通过程序传入的,有一个0x****8130 ...
(引用自119楼)

这两个地址其实挺重要的,在这个项目里面,说明你是认真看了代码的,哈哈

两者的意义不同,就不需要一一对应,下面说一下两者的不同

下位机的宏定义
#define FLASHADDR_RTE  (0x08008000) //这个是下位机的RTE代码存储在Flash的起始地址,Boot根据这个地址进行程序跳转运行

上位机IDE的toolchain_dyplc.py里面定义的
PLC_RTE_ADDR = 0x08008130
在文件plc_AtkMini_Main.c里面,有这样一个定义
#define PLC_RTE ((plc_rte_abi_t *)(PLC_RTE_ADDR))
上位机生成的APP代码里面有很多地方用到了PLC_RTE这个宏,是对下位机文件plc_glue_rte.c里面的
__attribute__ ((section(".plc_rte_sec"))) plc_rte_abi_t plc_glue_rte这个常量的直接寻址,也算abi接口应用的一种方式

所以两者的意义不同,这个也是参考yaplc的实现方式,现在看来这种方式还是有点不太好理解,有种故弄玄虚的感觉,
应该定义数据结构和接口来实现这个rte和app之间的交互比较好

出0入0汤圆

发表于 2022-11-1 16:57:31 | 显示全部楼层
落叶知秋 发表于 2022-11-1 09:15
这两个地址其实挺重要的,在这个项目里面,说明你是认真看了代码的,哈哈

两者的意义不同,就不需要一一 ...
(引用自120楼)

感谢 !

出0入0汤圆

发表于 2023-5-16 11:00:08 | 显示全部楼层
楼主你好,请教个问题,在Beremiz运行功能块或者梯形图,可以在Beremiz内进行在线仿真,单步调试吗?

出40入42汤圆

 楼主| 发表于 2023-5-16 19:02:52 | 显示全部楼层
abcd8341 发表于 2023-5-16 11:00
楼主你好,请教个问题,在Beremiz运行功能块或者梯形图,可以在Beremiz内进行在线仿真,单步调试吗? ...
(引用自122楼)

在线仿真可以,单步调试不可以

出0入0汤圆

发表于 2023-5-17 08:17:34 | 显示全部楼层
谢谢楼主,你说的在线仿真是不是基于x86还是基于stm32平台的?如何才能实现单步调试呢?是上位机没有这样的功能还是下位机不支持?

出40入42汤圆

 楼主| 发表于 2023-5-17 08:43:19 | 显示全部楼层
abcd8341 发表于 2023-5-17 08:17
谢谢楼主,你说的在线仿真是不是基于x86还是基于stm32平台的?如何才能实现单步调试呢?是上位机没有这样的 ...
(引用自124楼)

在线仿真没有平台要求,只要做了功能支持就行了,不过beremiz本身功能就比较弱,跟商业软件的体验差别比较大
单步调试需要整个系统框架级别的设计和实现,包括上下位机

出0入0汤圆

发表于 2023-5-17 09:27:23 | 显示全部楼层
楼主有没有开发过单步调试的功能啊,有没有开源的这种功能呢

出40入42汤圆

 楼主| 发表于 2023-5-17 14:07:44 | 显示全部楼层
abcd8341 发表于 2023-5-17 09:27
楼主有没有开发过单步调试的功能啊,有没有开源的这种功能呢
(引用自126楼)

没有开发过这个功能,据我所知,开源PLC没有做这个功能的

出0入0汤圆

发表于 2023-5-17 14:40:21 | 显示全部楼层
本帖最后由 abcd8341 于 2023-5-17 17:34 编辑

好的,谢谢楼主指导

出0入0汤圆

发表于 2023-5-17 17:53:59 | 显示全部楼层
楼主你知道还有其他什么方式或者平台,可以用功能块的形式来开发stm32这种mcu吗?

出40入42汤圆

 楼主| 发表于 2023-5-18 08:41:47 | 显示全部楼层
abcd8341 发表于 2023-5-17 17:53
楼主你知道还有其他什么方式或者平台,可以用功能块的形式来开发stm32这种mcu吗? ...
(引用自129楼)

可以看一下欧瑞传动的EC100/200这种形式,听说好像是stm32的平台做的

出0入0汤圆

发表于 2023-5-18 12:52:11 | 显示全部楼层
嗯,谢谢,我看看欧瑞传动,楼主你对IEC61499有了解吗

出40入42汤圆

 楼主| 发表于 2023-5-18 14:03:44 | 显示全部楼层
abcd8341 发表于 2023-5-18 12:52
嗯,谢谢,我看看欧瑞传动,楼主你对IEC61499有了解吗
(引用自131楼)

有稍微了解过,是比IEC 61131更抽象的一个工业标准,也有个比较庞大的开源项目 4diac
不过这个标准太抽象了,觉得现在产品化有点不合时宜,研究一下还是可以的

出0入0汤圆

发表于 2023-5-20 16:02:00 | 显示全部楼层
谢谢楼主,非常感谢您的指导。

出0入0汤圆

发表于 2023-5-20 16:09:28 | 显示全部楼层
弱弱的问下楼主,Beremiz的IDE开发需要哪些工具啊

出40入42汤圆

 楼主| 发表于 2023-5-20 17:56:48 来自手机 | 显示全部楼层
abcd8341 发表于 2023-5-20 16:09
弱弱的问下楼主,Beremiz的IDE开发需要哪些工具啊
(引用自134楼)

ide是Python,随便的代码编辑器就行了,要下载Python和对应的包,楼主位提供的安装包里就已经是包含对应的东西了,多了解一下Python和wxpython就可以了

出0入0汤圆

发表于 2023-5-20 20:25:04 | 显示全部楼层
IDE是基于pycharm的吗?

出40入42汤圆

 楼主| 发表于 2023-5-21 09:26:03 来自手机 | 显示全部楼层
abcd8341 发表于 2023-5-20 20:25
IDE是基于pycharm的吗?
(引用自136楼)

pycharm只是Python的开发工具
beremiz的IDE是基于wxpython框架的

出0入0汤圆

发表于 2023-5-28 08:59:21 | 显示全部楼层
楼主你好,我尝试了下4diac,这个软件也不能断点,单步仿真的。在Beremiz上实现单步断点仿真,不知道怎么弄,楼主有思路提供吗?

出40入42汤圆

 楼主| 发表于 2023-5-28 12:58:54 来自手机 | 显示全部楼层
abcd8341 发表于 2023-5-28 08:59
楼主你好,我尝试了下4diac,这个软件也不能断点,单步仿真的。在Beremiz上实现单步断点仿真,不知道怎么弄 ...
(引用自138楼)

这个框架是编译型的,所以断点功能要么在编译层面去实现,比如Linux下的gdb之类的机制,要么是在源码层面设计实现机制,比如在逻辑源码里面插入一些辅助代码用来检测断点是否命中之类的

出0入0汤圆

发表于 2023-5-31 19:35:31 | 显示全部楼层
本帖最后由 abcd8341 于 2023-5-31 20:25 编辑

楼主你好,请教下,beremiz源码主要需要修改哪些部分呢,如果下位机有数字量输入输出,模拟量输入输出,如何与上位机功能块联系起来呢?我现在程序可以跑起来了,但是如何查看实时运行的值呢

出40入42汤圆

 楼主| 发表于 2023-6-1 08:47:39 | 显示全部楼层
abcd8341 发表于 2023-5-31 19:35
楼主你好,请教下,beremiz源码主要需要修改哪些部分呢,如果下位机有数字量输入输出,模拟量输入输出,如 ...
(引用自140楼)

1. 监视实时值可以参考楼主位给出的倒数第二张图片,左下边导航栏有POU的变量表,变量右侧有个眼睛图标,点一下就会把变量加入到图片右侧的debugger里面监视
2. 数字量输入输出和模拟量输入输出,可以套源码里面的框架,上位机定义分配一些特殊地址,然后下位机把对应的值给到这些地址里面

出0入0汤圆

发表于 2023-6-1 13:15:29 | 显示全部楼层
谢谢楼主指导,有个问题请教下,beremiz源码拿过来改到支持stm32板子,上位机需要修改哪些地方呢?

出40入42汤圆

 楼主| 发表于 2023-6-1 14:00:23 | 显示全部楼层
abcd8341 发表于 2023-6-1 13:15
谢谢楼主指导,有个问题请教下,beremiz源码拿过来改到支持stm32板子,上位机需要修改哪些地方呢 ...
(引用自142楼)

楼主位提供的软件安装包是支持stm32的,你可以去beremiz官网下载一个源码安装包,对比一下两者的区别

出0入0汤圆

发表于 2023-6-3 15:16:57 | 显示全部楼层
楼主您好,我想问一个关于Debug 的问题,debug的时候,IDE中的变量表数据地址及idx 与 MCU(RET)中的变量地址咋对上的,变量地址不都是MCU自动分配的吗?

出0入0汤圆

发表于 2023-6-3 23:29:13 | 显示全部楼层
klwanghao 发表于 2021-2-25 15:42
楼主您好,想跟您交流一下,我们公司想开这个项目,想请您做我们公司顾问,我的邮箱是,我的qq是39523734 ...
(引用自50楼)

我可以加你QQ好友吗?最近也在学习这个软件,也是公司有相关需求

出0入0汤圆

发表于 2023-6-3 23:46:02 | 显示全部楼层
落叶知秋 发表于 2022-10-28 15:04
stm32f103xC-rte.ld这个文件没有用到,只有stm32f103xC-app.ld这个文件被上位机用到了,
之所以存在stm32 ...
(引用自118楼)

ld文件使用gun相关工具是用到的,它的作用应该和mdk里的sct文件一样,设置代码段和起始地址

出40入42汤圆

 楼主| 发表于 2023-6-5 08:50:44 | 显示全部楼层
rrc 发表于 2023-6-3 15:16
楼主您好,我想问一个关于Debug 的问题,debug的时候,IDE中的变量表数据地址及idx 与 MCU(RET)中的变量 ...
(引用自144楼)

这个是在编译的时候生成的
新建一个工程,编译成功后,文件夹下面会有一个plc_debugger.c的文件,里面会有变量的地址表,runtime里面用到的
然后上位机会用到同样路径下的VARIABLES.csv,跟plc_debugger.c里面的顺序一致

这个软件其实并不难看懂的,有些搜索了没有的接口,就配合工程编译出来的.c文件一起看一下

出0入0汤圆

发表于 2023-6-5 12:04:20 | 显示全部楼层
落叶知秋 发表于 2023-6-5 08:50
这个是在编译的时候生成的
新建一个工程,编译成功后,文件夹下面会有一个plc_debugger.c的文件,里面会 ...
(引用自147楼)

好,谢谢楼主,我再多研究研究,还有您提供的资料对我的帮助很大,可以少走很多弯路

出0入0汤圆

发表于 2023-6-5 20:38:58 | 显示全部楼层
楼主你好,我最近尝试pycharm打开beremiz的源码,python是指定用2.7.16版本吗?我使用3.10版本有很多问题,需要安装很多包,有些包还无法安装。这里想请教下楼主,你是用什么方法编译源码的呢?

出40入42汤圆

 楼主| 发表于 2023-6-6 08:42:48 | 显示全部楼层
abcd8341 发表于 2023-6-5 20:38
楼主你好,我最近尝试pycharm打开beremiz的源码,python是指定用2.7.16版本吗?我使用3.10版本有很多问题, ...
(引用自149楼)

楼主位给出的源码python版本是2.7的版本,不是3.0以上的版本,python3跟python2不兼容
我是用VSCode作为编辑器,然后命令行调试运行的,最后打包是用了另外一个打包软件
之前看到beremiz的维护者把源码迁移到GitHub上了,可能已经移植到python3了,你可以上去看一下

出0入0汤圆

发表于 2023-6-6 21:05:53 | 显示全部楼层
楼主你好,我现在下载的最新源码,在pycharm编译的时候遇到问题,不知道你是否也遇到过这个问题,是否可以帮忙看看。
file = text(file, sys.getfilesystemencoding())
TypeError: decoding str is not supported

出40入42汤圆

 楼主| 发表于 2023-6-7 08:37:23 | 显示全部楼层
abcd8341 发表于 2023-6-6 21:05
楼主你好,我现在下载的最新源码,在pycharm编译的时候遇到问题,不知道你是否也遇到过这个问题,是否可以 ...
(引用自151楼)

没有遇到过,这个可以去python的相关论坛或是搜索引擎找一下原因

出0入0汤圆

发表于 2023-6-11 08:22:16 | 显示全部楼层
楼主,我现在编译出来了,但是在beremiz软件里写好功能块程序点击编译的时候出现matiec安装没有发现,PLC代码生成失败,这是什么原因呢?

出40入42汤圆

 楼主| 发表于 2023-6-11 09:14:33 来自手机 | 显示全部楼层
abcd8341 发表于 2023-6-11 08:22
楼主,我现在编译出来了,但是在beremiz软件里写好功能块程序点击编译的时候出现matiec安装没有发现,PLC代 ...
(引用自153楼)

matiec是另外一个C++写的ST转C编译器程序,也需要编译出来配合beremiz一起使用,GitHub上也有

出0入0汤圆

发表于 2023-6-11 20:24:29 | 显示全部楼层
楼主指导下我编译matiec可以吗?谢谢

出40入42汤圆

 楼主| 发表于 2023-6-12 09:04:24 | 显示全部楼层
abcd8341 发表于 2023-6-11 20:24
楼主指导下我编译matiec可以吗?谢谢
(引用自155楼)

使用mingw按照readme步骤编译就行了

出0入0汤圆

发表于 2023-6-21 07:52:00 | 显示全部楼层
楼主,请教下,我用源码编译出来beremiz,matiec都是一样的,编译工程出现如下问题,但是安装官方的exe文件,编译没有这个问题。这是哪里出错了呢?
PLC:
   [CC]  plc_main.c -> plc_main.o
C构建损坏!
Traceback (most recent call last):
  File "D:\abc\Beremiz\beremiz\ProjectController.py", line 1182, in _Build
    if not builder.build():
  File "D:\abc\Beremiz\beremiz\targets\toolchain_gcc.py", line 188, in build
    (self.compiler, CFile, objectfilename, Builder_CFLAGS, CFLAGS)
  File "D:\abc\Beremiz\beremiz\util\ProcessLogger.py", line 145, in __init__
    self.Proc = subprocess.Popen(self.Command, **popenargs)
  File "C:\Python27\lib\subprocess.py", line 394, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 644, in _execute_child
    startupinfo)
WindowsError: [Error 2]

出40入42汤圆

 楼主| 发表于 2023-6-21 08:36:28 | 显示全部楼层
abcd8341 发表于 2023-6-21 07:52
楼主,请教下,我用源码编译出来beremiz,matiec都是一样的,编译工程出现如下问题,但是安装官方的exe文件 ...
(引用自157楼)
File "C:\Python27\lib\subprocess.py", line 644, in _execute_child
    startupinfo)
WindowsError: [Error 2]

报错信息已经给出了提示了,是上面这个python文件里面调用出错了,
查了下是文件打开失败,看一下文件路径之类有没有正确传入吧

出0入0汤圆

发表于 2023-6-24 11:09:44 | 显示全部楼层
楼主你好,我查了下是在调用gcc命令的时候出错了,这个gcc命令本身没有问题,是不是路径问题导致的呢?这个编译路径在哪里设置呢?楼主是否碰到过类似问题

出40入42汤圆

 楼主| 发表于 2023-6-24 12:09:36 来自手机 | 显示全部楼层
abcd8341 发表于 2023-6-24 11:09
楼主你好,我查了下是在调用gcc命令的时候出错了,这个gcc命令本身没有问题,是不是路径问题导致的呢?这个 ...
(引用自159楼)

IDE将逻辑程序通过matiec转为C文件后,会调用gcc将C文件转为二进制文件,这些调用都是通过命令行传参方式调用另外的exe来实现,如果是gcc问题,那就看一下gcc程序的路径在IDE里面是否正确设置了,路径的设置一般是在builder子类里返回

出0入0汤圆

发表于 2023-6-24 18:53:46 | 显示全部楼层
谢谢楼主指点,我发现安装你的IDE后,工程配置为win32也会出现同样的问题,只有选择AtkMini才可以编译出来,你是修改哪里,程序可以去调用arm_gcc的呢?工程中是不是不能支持多个平台?比如同时支持win32和AtkMini

出40入42汤圆

 楼主| 发表于 2023-6-25 08:57:31 | 显示全部楼层
abcd8341 发表于 2023-6-24 18:53
谢谢楼主指点,我发现安装你的IDE后,工程配置为win32也会出现同样的问题,只有选择AtkMini才可以编译出来 ...
(引用自161楼)

看楼主位给的IDE的代码,里面有个[DYPLC]目录的,里面的target和connector那些是继承了[beremiz]目录里面的相关类的,
当工程选择了对应的平台后,就会按照平台来访问不同的子类接口,主要查看getCompiler(),getLinker(),build()之类继承的接口怎么实现的就一目了然了

出50入135汤圆

发表于 2023-7-4 22:58:13 来自手机 | 显示全部楼层
abcd8341 发表于 2023-6-6 21:05
楼主你好,我现在下载的最新源码,在pycharm编译的时候遇到问题,不知道你是否也遇到过这个问题,是否可以 ...
(引用自151楼)

你好,你是怎么解决的?我今天也遇到这个问题了。

出0入0汤圆

发表于 2023-7-10 21:09:03 | 显示全部楼层
楼主您好,在您的指导下,现在已经前进不少。现在碰到一个问题请教下,我编译完成,准备用串口下载时,报这个错误,Exception while connecting to 'DYPLC://0/COM5': No module named typemapping
连接失败 DYPLC://0/COM5!。麻烦指导下,谢谢

出0入0汤圆

发表于 2023-7-10 21:10:16 | 显示全部楼层
Stm32Motor 发表于 2023-7-4 22:58
你好,你是怎么解决的?我今天也遇到这个问题了。
(引用自163楼)

改为file = text(file)即可

出40入42汤圆

 楼主| 发表于 2023-7-11 09:15:51 | 显示全部楼层
abcd8341 发表于 2023-7-10 21:09
楼主您好,在您的指导下,现在已经前进不少。现在碰到一个问题请教下,我编译完成,准备用串口下载时,报这 ...
(引用自164楼)

1.先确认你用的Beremiz源码是否本帖楼主位的版本,否则的话,你要看楼主位的源码怎么用串口通信
2.是楼主位源码的话,看【DYPLC】目录下的【dyplcconnectors】->【DYPLC】的源码,里面是自定义串口通信协议的全部了
3.确认COM5是否你电脑跟PLC连接的物理COM口,否则需要更改
4.还不行的话,就在源码里面添加调试代码来调试,或者在python相关的ide里面用断点调试

出0入0汤圆

发表于 2023-8-22 15:07:52 | 显示全部楼层
楼主你好,有个问题请教下哦。在开发环境中,有些变量地址在上位机设置为%IX0.0,%IW2.2,%QX0.1,在RTE中的a_size,a_data,proto这些值是如何来的?

出40入42汤圆

 楼主| 发表于 2023-8-23 08:46:33 | 显示全部楼层
abcd8341 发表于 2023-8-22 15:07
楼主你好,有个问题请教下哦。在开发环境中,有些变量地址在上位机设置为%IX0.0,%IW2.2,%QX0.1,在RTE中 ...
(引用自167楼)

结合上位机目录【Beremiz\DYPLC\dyplctargets\AtkMini】里的plc_AtkMini_main.c和下位机的代码一起看
上位机生成App的main文件时,会把对应的IOM表的数据也定义成静态变量来供RTE访问

出0入0汤圆

发表于 2023-8-23 09:14:03 | 显示全部楼层
本帖最后由 abcd8341 于 2023-8-23 09:17 编辑

谢谢楼主指导,现在遇到一个问题是这样的,地址设为%QB0.4,但是RTE中的a_size值为1,在PLC_IOM_LOCAL_CHECK函数中判断值是2,if (2 != PLC_APP->l_tab->a_size)。这个地方我有点疑惑

出40入42汤圆

 楼主| 发表于 2023-8-23 20:47:15 | 显示全部楼层
abcd8341 发表于 2023-8-23 09:14
谢谢楼主指导,现在遇到一个问题是这样的,地址设为%QB0.4,但是RTE中的a_size值为1,在PLC_IOM_L ...
(引用自169楼)

%QB0.4这种直接寻址方式RTE应该是不支持的,RTE的直接寻址都是用来做特殊的硬件资源交互的,%QB这种没有定义
a_size那个就是“%QB0.4”这种寻址方式的第一个“.”后面的数字个数,用来做识别的
这个都是自定义的,你可以自己改这部分的代码

出0入0汤圆

发表于 2023-8-28 15:29:23 | 显示全部楼层
楼主你好,有个问题请教下,PLC_RTE->motion_init();PLC_RTE->motion_cleanup();这几个函数是什么作用啊,RTE中也都是空函数,好像不可以删掉,否则库的功能就没有了。

出40入42汤圆

 楼主| 发表于 2023-8-28 19:16:39 | 显示全部楼层
abcd8341 发表于 2023-8-28 15:29
楼主你好,有个问题请教下,PLC_RTE->motion_init();PLC_RTE->motion_cleanup();这几个函数是什么作用啊,R ...
(引用自171楼)

motion_init()有用,motion_cleanup()没用
初始化函数必须调用后,才能使用运动控制库的功能
这些函数都是给IDE生成的App逻辑程序调用的

出0入0汤圆

发表于 2023-9-20 11:43:18 | 显示全部楼层
本帖最后由 abcd8341 于 2023-9-20 12:39 编辑

楼主你好,可以指导下如何用pyinstaller或其他工具打包程序的呢?谢谢

出0入0汤圆

发表于 2023-9-26 08:41:41 | 显示全部楼层
楼主可以指导下如何打包吗?可以分享下打包脚本吗?

出40入42汤圆

 楼主| 发表于 2023-9-28 11:07:18 | 显示全部楼层
abcd8341 发表于 2023-9-26 08:41
楼主可以指导下如何打包吗?可以分享下打包脚本吗?
(引用自174楼)

打包软件是NSIS
本来就是Python源码,直接解析运行的,安装包里也包含了Python2.7的解释器,然后目录全部塞进去打包成EXE
执行EXE安装包就是把目录解压出来,然后生成一个快捷方式,快捷方式里面用python来运行对应的文件
打包脚本找不到了,本来这个帖子里的项目已经不再弄了,打包的脚本可能跟以前的项目一起删掉了

出0入0汤圆

发表于 2023-11-3 10:54:33 | 显示全部楼层
本帖最后由 abcd8341 于 2023-11-3 11:04 编辑

楼主,你好,有个问题请教下,上位机中变量设置为retain后,是如何通过下位机传递上来的呢?好像是.retain = plc_backup_retain, .remind = plc_backup_remind,这两个函数,具体是什么样的流程呢?这个__attribute__ ((section(".plc_rte_sec"))) plc_rte_abi_t plc_glue_rte =结构体是什么样的作用,感觉很多函数都是放在这里的

出0入0汤圆

发表于 2024-3-29 11:30:27 | 显示全部楼层
我发现一个工具上的问题,您这边会出现吗?就是如果不选择clean,如果工程增加了变量仅仅,直接编译(可能增量编译)实际的bin的 data start和data end会都是dataend,这样cstart 检查就出错了。

出0入0汤圆

发表于 2024-4-11 13:16:27 | 显示全部楼层
楼主,有个问题请教下,项目内的全局变量,resource内的全局变量和程序中的变量由什么区别啊?程序中可以使用这些全局变量吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 16:12

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

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