Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一个关于自动分配从机地址的问题 #32

Open
LeonLu8601 opened this issue Dec 13, 2018 · 5 comments
Open

一个关于自动分配从机地址的问题 #32

LeonLu8601 opened this issue Dec 13, 2018 · 5 comments

Comments

@LeonLu8601
Copy link

对于新手来说您的代码对我熟悉modbus和freemodbus的移植有很大的帮助,先谢谢您对开源的支持与帮助,我现在遇到了一个问题,需要连接多个从机,而跟多个从机分配地址是需要多次改动代码烧录非常麻烦,现在想到可以通过识别stm32的cpuid来区分不同的从机,由主机广播来分配从机的地址,请问freemodbus中对于用户自定义的功能码如何添加,从机初始化需要做出哪些修改,能否提一下您的思路,谢谢。

@armink
Copy link
Owner

armink commented Dec 13, 2018

从机的地址有明显的范围吗?你是想做成类似 DHCP 自动获取 IP 的功能?

@LeonLu8601
Copy link
Author

从机的地址有明显的范围吗?你是想做成类似 DHCP 自动获取 IP 的功能?

范围是在100以内,的确是想实现类似DHCP自动获取ip地址的功能。

@armink
Copy link
Owner

armink commented Dec 14, 2018

现在的主机这边是有记录从机数据的缓冲区,如果范围是 100 ,由于该缓冲区的存储结构为顺序存储的数组,这样会导致很多资源浪费,建议你先评估下这种方式这种的可行性。

另外,类 DHCP 功能必须要有主机配合,可对于 modbus 的通信模型来说,主从模式将会导致从机没法主动与主机发送通信,所以感觉在 modbus 这种主从协议总线上不好实现,在 CAN 之类协议上才可能

@LeonLu8601
Copy link
Author

LeonLu8601 commented Dec 14, 2018

现在的主机这边是有记录从机数据的缓冲区,如果范围是 100 ,由于该缓冲区的存储结构为顺序存储的数组,这样会导致很多资源浪费,建议你先评估下这种方式这种的可行性。

另外,类 DHCP 功能必须要有主机配合,可对于 modbus 的通信模型来说,主从模式将会导致从机没法主动与主机发送通信,所以感觉在 modbus 这种主从协议总线上不好实现,在 CAN 之类协议上才可能

那如果减少主机的数量,在主机的上位机和从机中加入自定义的功能码,点击上位机的按钮发送带有自定义功能码的广播指令,从机在接收到广播指令之后发送自己的cpuid,主机上位机根据从机发回的数据进行比较,对从机进行从机地址编号,请问是否可行?

@armink
Copy link
Owner

armink commented Dec 15, 2018

从机在接收到广播指令之后发送自己的cpuid

这种是没法实现的,主机广播完,此次通信就结束了。同时还有下面的限制

可对于 modbus 的通信模型来说,主从模式将会导致从机没法主动与主机发送通信,可对于 modbus 的通信模型来说,主从模式将会导致从机没法主动与主机发送通信,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants