你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于modbus协议中的线圈

[复制链接]
youngz1990 提问时间:2015-12-11 10:31 /
小弟最近在搞关于modbus方面的东西,主要参考的是freemodbus v1.5,看到线圈的代码后有点不能理解,主要是我的水平原因,就到坛子上来请教做过modbus的大神
我的理解:
线圈和离散量都被看成单个的数字量,按我的理解是对某一个bit的操作就是对线圈的操作。
我的困惑:
但是让我困惑的是在源码中,对线圈进行操作也是通过对字节的操作来的,那么是不是可以这样理解,比如我的从机中有16个线圈,起始地址是0x0000,那么我要对第1个和8个线圈写1,那么我应该向从机发送0x8100就能达到效果呢。
收藏 1 评论6 发布时间:2015-12-11 10:31

举报

6个回答
youngz1990 回答时间:2015-12-11 11:16:16
自己顶上去。
anger0925 回答时间:2015-12-11 12:45:57
没有使用过
安臣 回答时间:2015-12-11 13:04:35
顶上去         
心中月古 回答时间:2015-12-11 15:57:13
本帖最后由 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中有具体怎么读,怎么写的逻辑的。
youngz1990 回答时间:2015-12-13 17:05:58
enjoyfreescal 发表于 2015-12-11 15:57
起始地址只是你要从哪个地址开始写或则读,比如你有16个DO,写第一个和第八个那么起应该是u8 CoilBuf[]中的 ...

嗯,我大概知道了,您说的具体代码是指的eMBRegCoilsCB()这个函数吧
阿厘 回答时间:2018-8-12 13:38:23
线圈这个函数  eMBRegCoilsCB() 搞定了吗  为什么我的  不能用

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版