完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小弟最近在搞关于modbus方面的东西,主要参考的是freemodbus v1.5,看到线圈的代码后有点不能理解,主要是我的水平原因,就到坛子上来请教做过modbus的大神。
我的理解: 线圈和离散量都被看成单个的数字量,按我的理解是对某一个bit的操作就是对线圈的操作。 我的困惑: 但是让我困惑的是在源码中,对线圈进行操作也是通过对字节的操作来的,那么是不是可以这样理解,比如我的从机中有16个线圈,起始地址是0x0000,那么我要对第1个和8个线圈写1,那么我应该向从机发送0x8100就能达到效果呢。 |
|
相关推荐
5个回答
|
|
自己顶上去。
|
|
|
|
没有使用过
|
|
|
|
顶上去
|
|
|
|
本帖最后由 enjoyfreescal 于 2015-12-11 15:59 编辑
起始地址只是你要从哪个地址开始写或则读,比如你有16个DO,写第一个和第八个那么起应该是u8 CoilBuf[]中的CoilBuf[0] |= 0x81;freemodebus中V1.5对应的地址。 //读写线圈状态 0x01 0x05 0x0F u8 ucRegCoilsBuf[REG_COILS_SIZE/8]={0}; 在Port.c中有具体怎么读,怎么写的逻辑的。 |
|
|
|
she558742 发表于 2018-10-16 09:14 嗯,我大概知道了,您说的具体代码是指的eMBRegCoilsCB()这个函数吧 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
779 浏览 2 评论
955 浏览 2 评论
1902 浏览 0 评论
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
695 浏览 0 评论
求助!STM32F4单片机编程与设计sEMG信号采集电路问题
877 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 21:32 , Processed in 0.536916 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号