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

关于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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版