qqfirer 发表于 2014-12-7 17:34:27

刚看到。不错啊,大赞

Timerunner321 发表于 2015-1-4 15:50:37

谢谢 有用

demonye 发表于 2015-1-4 21:38:51

早几天发现
就用你的啦

feiante116 发表于 2015-1-4 23:18:55

是在RTT上的,有没有裸机的,呵呵,我比较懒和笨

nandi 发表于 2015-1-12 13:29:07

学习学习,感谢楼主

lyricpoem0726 发表于 2015-1-22 12:06:19

XIUQIN 发表于 2014-10-6 17:10
请问前辈,针对从机的0X03读保持寄存器和0X10写多个寄存器,这两个功能码操作的都是保持寄存器,我想若是分 ...

大牛 能分享一个ucos-II 版本的不?

sunday640 发表于 2015-1-22 13:21:25

MODUSBUS用的挺多的。 但是就是自己还不会用。。

lyricpoem0726 发表于 2015-1-22 14:07:49

楼主移植了ucos-ii版本的了吗? 对rtt不太懂,看起来好费劲呀

sunnydragon 发表于 2015-1-23 13:06:01

lyricpoem0726 发表于 2015-1-22 14:07
楼主移植了ucos-ii版本的了吗? 对rtt不太懂,看起来好费劲呀

有网友移植我的项目到Ucos上去了,你加我QQ我发给我(见签名)

XIUQIN 发表于 2015-1-23 13:54:25

lyricpoem0726 发表于 2015-1-22 12:06
大牛 能分享一个ucos-II 版本的不?

移值得不太好,主要在AFL V3板子上跑的

XIUQIN 发表于 2015-1-23 13:57:09

XIUQIN 发表于 2015-1-23 13:54
移值得不太好,主要在AFL V3板子上跑的

很多需要改进的地方,能力有限!

lyricpoem0726 发表于 2015-1-23 14:11:16

XIUQIN 发表于 2015-1-23 13:57
很多需要改进的地方,能力有限!

谢谢了,我观摩一下!

sunday640 发表于 2015-1-23 15:19:35

谢谢分享。。Modbus协议在工控领域运用广泛

lyricpoem0726 发表于 2015-1-27 11:02:53

modbus 中保持寄存器等里的数据是如何刷新的?一般是不是定时刷新???

qdyuyan 发表于 2015-1-27 11:23:30

正需要主机,楼主辛苦了!谢谢!

sunnydragon 发表于 2015-1-27 13:03:22

qdyuyan 发表于 2015-1-27 11:23
正需要主机,楼主辛苦了!谢谢!

听懂你的意思,你说的是主机还是从机?

zpc2013 发表于 2015-1-27 13:09:37

现在对这方面在关注

qdyuyan 发表于 2015-1-27 13:12:22

是主机,

sunnydragon 发表于 2015-1-27 13:16:03

qdyuyan 发表于 2015-1-27 13:12
是主机,

晕~回复错人了{:funk:}

sunnydragon 发表于 2015-1-27 13:16:19

lyricpoem0726 发表于 2015-1-27 11:02
modbus 中保持寄存器等里的数据是如何刷新的?一般是不是定时刷新???

听懂你的意思,你说的是主机还是从机?

lyricpoem0726 发表于 2015-1-27 14:01:16

sunnydragon 发表于 2015-1-27 13:16
听懂你的意思,你说的是主机还是从机?

我还没有看主机,但是我觉得不管从机还是主机,都应该会更新保存寄存器的值吧,假如我要将采集到的数据存到保存寄存器,然后通过modbus传给上位机?
那么保存寄存器的值怎么更新比较好呢?我一般是定时刷新的,不知道有没有更好的方法。

sunnydragon 发表于 2015-1-27 15:06:23

lyricpoem0726 发表于 2015-1-27 14:01
我还没有看主机,但是我觉得不管从机还是主机,都应该会更新保存寄存器的值吧,假如我要将采集到的数据存 ...

不知道你说的这个保持寄存器是不是指代单片机中Modbus数据缓冲区中的数据,还是上位机显示的保持寄存器。
如果单片机是从机,那么你需要定时把你的数据更新到保持寄存器的缓冲区中,此时上位机什么时候去读取这个保持寄存器,那是上位机的事情。
如果单片机是主机,可以定时调用主机请求读取保持寄存器的接口,请求一次你就会获取一次最新的数据。

lyricpoem0726 发表于 2015-1-27 16:20:41

sunnydragon 发表于 2015-1-27 15:06
不知道你说的这个保持寄存器是不是指代单片机中Modbus数据缓冲区中的数据,还是上位机显示的保持寄存器。 ...

非常感谢,我明白了!

鱼尾之恋 发表于 2015-1-28 16:40:51

不粗,很强大

569350810 发表于 2015-2-3 21:14:50

谢谢分享,标记

liuyingqing139 发表于 2015-2-7 08:28:03

好资料,学习了

NEXEN1106 发表于 2015-2-7 08:35:24

好东西,学习了

ccrt 发表于 2015-2-9 22:34:11

感谢分享

wwwzfgcom 发表于 2015-2-9 22:43:27

厉害,顶

holts2 发表于 2015-2-12 08:05:43

不错,谢谢分享

kevin_me 发表于 2015-2-12 09:11:42

好好好,又是一个可以学习的项目

XIUQIN 发表于 2015-3-4 08:32:07

请问前辈!modbus RTU从机中的保持寄存器在读写时需要做互斥处理吧?FreeMobus底层好像没有实现。比如我有个实时时钟的数据(年月,日时,分秒)定期的在从机中刷入3个保持寄存器中,上位机会随机的一次读取这些不断更新的3个数据作为时间戳,这时我就想到若是我在写一半数据时,上位机来读取了,这时我还没刷新完,数据的完整性会有问题。现在想到的只有使用互斥信号量来解决,但要改动FreeModbus的底层,现在我不想去这样做,想保证底层的完整,不知前辈有何建议,谢谢!

一方通行 发表于 2015-3-4 08:45:12

MARK感谢楼主,最近正好要用MODBUS

sunnydragon 发表于 2015-3-4 20:31:11

XIUQIN 发表于 2015-3-4 08:32
请问前辈!modbus RTU从机中的保持寄存器在读写时需要做互斥处理吧?FreeMobus底层好像没有实现。比如我有个 ...

我感觉没有必要这样做吧。重点要保证其他代码写这3个保证寄存器的速度足够快,代码紧凑度可以提高一些,同时尽量不要在中断中执行写的操作,更极端的方法就是,写前关闭中断,写完之后再打开。这样保证在读取保持寄存器的值的时候CPU不会被打断,数据自然就完整了。

fengban 发表于 2015-3-4 22:12:37

还没有用过主机协议栈,以后可能要上主机硬件模块,如果还保留modbus组网能力,楼主这个就帮上大忙了,看楼主的意思,是不是没有差错处理?

zjlizy3344 发表于 2015-3-4 22:27:03

做的项目正需要相关知识

sunnydragon 发表于 2015-3-4 22:31:57

fengban 发表于 2015-3-4 22:12
还没有用过主机协议栈,以后可能要上主机硬件模块,如果还保留modbus组网能力,楼主这个就帮上大忙了,看楼 ...

你的“差错处理”具体指的是什么?

fengban 发表于 2015-3-5 08:28:41

sunnydragon 发表于 2015-3-4 22:31
你的“差错处理”具体指的是什么?

应该说是异常处理吧,比如从机返回数据异常之类的

sunnydragon 发表于 2015-3-5 10:56:15

fengban 发表于 2015-3-5 08:28
应该说是异常处理吧,比如从机返回数据异常之类的

支持的哦~请仔细查看文档说明。

sunnydragon 发表于 2015-3-5 11:05:48

大家注意下,代码以在Github,OSChina上是最新的。建议使用最新代码,最新代码在稳定性及功能上都有增加。
Github: https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32
OSChina: http://git.oschina.net/armink/FreeModbus_Slave-Master-RTT-STM32

MobileLover 发表于 2015-3-5 22:32:45

不错顶起

xh2008email 发表于 2015-3-6 07:53:00

楼主强,厉害呀,{:victory:}

XIUQIN 发表于 2015-3-31 18:18:11

本帖最后由 XIUQIN 于 2015-3-31 18:24 编辑

你好!发现一个问题 。当主机使用功能码16去向2000的地址写一个数时,数是写到从机了,但从机正确的响应却被主机认为响应功能出错。经查发现在功能码16的函数eMBMasterFuncWriteMultipleHoldingRegister()里 调用了eMBMasterRegHoldingCB()这个函数,而其里面有个这个判断if ((usAddress >= REG_HOLDING_START)&& (usAddress + usNRegs <= REG_HOLDING_START + REG_HOLDING_NREGS)),需要屏蔽(usAddress + usNRegs <= REG_HOLDING_START + REG_HOLDING_NREGS)才可正常。经试验发现要么在使用写多个保持寄存器时给的起始地址形参小于它才行#define M_REG_HOLDING_NREGS900这个定义的从机缓存。也就是说请求的地址需小于从机的缓存。表达的不好。
            

sunnydragon 发表于 2015-3-31 21:21:45

本帖最后由 sunnydragon 于 2015-3-31 21:22 编辑

XIUQIN 发表于 2015-3-31 18:18
你好!发现一个问题 。当主机使用功能码16去向2000的地址写一个数时,数是写到从机了,但从机正确的响应却 ...

地址为2000的寄存器,REG_HOLDING_START 与REG_HOLDING_NREGS你分别设置为多少?

XIUQIN 发表于 2015-4-1 08:24:41

本帖最后由 XIUQIN 于 2015-4-1 11:53 编辑

sunnydragon 发表于 2015-3-31 21:21
地址为2000的寄存器,REG_HOLDING_START 与REG_HOLDING_NREGS你分别设置为多少?


地址为2000的寄存器,REG_HOLDING_START = M_REG_HOLDING_START;//M_REG_HOLDING_START默认的是0          REG_HOLDING_NREGS = M_REG_HOLDING_NREGS;//M_REG_HOLDING_NREGS设定为0X38E

(1)在功能码16的回调函数里eMBMasterFuncWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen )       pucFrame这时是带入的接收帧缓存地址,但这个值并没有在函数里使用。 其里面的这个判断 if( ucRegByteCount == 2 * usRegCount )也只是在判断发送帧。
(2)eMBMasterFuncWriteMultipleHoldingRegister()使写入从机的有效寄存器值又同样的在主机的从机缓存里做了一个同样的映射(起始地址和值)。所以当主机通过功能码16写从机保持寄存器的空间大于主机为从机预设的缓存时照成报错。不知理解的对不。

billtian 发表于 2015-4-1 08:27:08

FreeModbus主机+从机

socoolcool 发表于 2015-4-1 09:13:45

这个必须的支持啊

sunnydragon 发表于 2015-4-1 11:50:48

XIUQIN 发表于 2015-4-1 08:24
地址为2000的寄存器,REG_HOLDING_START = M_REG_HOLDING_START;//M_REG_HOLDING_START默认的是0       ...

地址为2000的寄存器,如果你设定REG_HOLDING_START = 0,REG_HOLDING_NREGS = 0X38E(十进制:910),那么地址范围就只能是0-910,2000都超出范围了。

XIUQIN 发表于 2015-4-1 13:24:29

sunnydragon 发表于 2015-4-1 11:50
地址为2000的寄存器,如果你设定REG_HOLDING_START = 0,REG_HOLDING_NREGS = 0X38E(十进制:910),那 ...

请问前辈,功能码16写多个保持寄存器为何需要将写入从机的数据再在主机的保持寄存器里做个映像呢?要是主机操作的从机保持寄存器地址范围很宽,而主机的RAM有限的情况是无法建立与其一样大小的保持寄存器空间。例如,我要求需要联机的从机保持寄存器0-1000给我只读的,而要求2000-3000只是用来写命令数据的。主机RAM需要保存多个读到的从机数据,而与主机联机的从机RAM可以开的很大,因其只要照顾自己。

sunnydragon 发表于 2015-4-2 10:04:12

XIUQIN 发表于 2015-4-1 13:24
请问前辈,功能码16写多个保持寄存器为何需要将写入从机的数据再在主机的保持寄存器里做个映像呢?要是主 ...

因为设计之初就是为了缓存从机的数据,方便应用层去访问。
后期我还会可以增加缓冲区开关,直接通过主机请求API返回获取到的从机数据。

XIUQIN 发表于 2015-4-2 11:23:07

本帖最后由 XIUQIN 于 2015-4-2 11:25 编辑

sunnydragon 发表于 2015-4-2 10:04
因为设计之初就是为了缓存从机的数据,方便应用层去访问。
后期我还会可以增加缓冲区开关,直接通过主机 ...

噢如此啊,谢谢!也就是需要保存上次下发给从机的数据,以便实时在本地就可查询从机状态。

不舍的六年 发表于 2015-4-2 11:50:24

谢谢大神,,帮了我很大的忙

woshixiaozhou 发表于 2015-4-2 13:25:15

谢谢楼主分享。

XIUQIN 发表于 2015-4-6 14:53:07

请问前辈:输入寄存器的回调函数里这句可否屏蔽呢?看了官方的也有这条。
eMBException
eMBFuncReadInputRegister( UCHAR * pucFrame, USHORT * usLen )
{
    USHORT          usRegAddress;
    USHORT          usRegCount;
    UCHAR          *pucFrameCur;

    eMBException    eStatus = MB_EX_NONE;
    eMBErrorCode    eRegStatus;

    if( *usLen == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
    {
      usRegAddress = ( USHORT )( pucFrame << 8 );
      usRegAddress |= ( USHORT )( pucFrame );
      
//   usRegAddress++;   //原创是有这条的但会造成设定10个输入寄存器却只能读取9个(地址偏移了一个,少一个,0地址读不到)

heicnhei3 发表于 2015-4-13 14:19:00

FreeModbus,好

first_blood 发表于 2015-4-14 18:49:36

是用命令队列加回调吗

WERWER 发表于 2015-4-14 19:45:01

mark                     

qmsolo2004 发表于 2015-4-22 16:03:10

想学学modbus,感谢分享!

XIUQIN 发表于 2015-5-28 08:29:46

请问前辈功能码03请求帧里的请求数量用一个寄存器表示,也就是按说可一次请求65545个寄存器。但标准里好像只允许一次只能请求125个寄存器。用modbus POLL测试也只给请求125个,那为何请求数量用两个字节呢?

sunnydragon 发表于 2015-5-28 08:59:35

XIUQIN 发表于 2015-5-28 08:29
请问前辈功能码03请求帧里的请求数量用一个寄存器表示,也就是按说可一次请求65545个寄存器。但标准里好像 ...

你确认标准一次最多请求125个寄存器?请贴图出来

XIUQIN 发表于 2015-5-28 14:07:22

sunnydragon 发表于 2015-5-28 08:59
你确认标准一次最多请求125个寄存器?请贴图出来

这个资料是位老师傅给我的。

sunnydragon 发表于 2015-5-28 14:32:28

XIUQIN 发表于 2015-5-28 14:07
这个资料是位老师傅给我的。

恩~确实是这样。不清楚协议为什么这样设定,我们只能按照协议上规定的实现就好了,这样才能保证我们的协议栈兼容所有设备。。

XIUQIN 发表于 2015-5-28 14:46:53

个人理解是不是防止过长的一帧若是出错,需要全部重发带来效率问题。

XIUQIN 发表于 2015-5-28 14:53:31

sunnydragon 发表于 2015-5-28 14:32
恩~确实是这样。不清楚协议为什么这样设定,我们只能按照协议上规定的实现就好了,这样才能保证我们的协 ...

我现在的做法是若需要请求大于125的一包数据时,只有做分片请求处理。有点像以太网的链路层最大只能一帧传1500个字节,但TCP传输层的数据段却可达到上万字节,其也做了分片处理来满足链路层的限制。

sunnydragon 发表于 2015-5-28 15:07:01

XIUQIN 发表于 2015-5-28 14:53
我现在的做法是若需要请求大于125的一包数据时,只有做分片请求处理。有点像以太网的链路层最大只能一帧 ...

如果你要用Modbus协议,那就协议怎么规定的就怎么做。
你有新的想法,可以按照你的想法自己再设计新的协议及软件即可。

XIUQIN 发表于 2015-5-28 16:30:46

sunnydragon 发表于 2015-5-28 15:07
如果你要用Modbus协议,那就协议怎么规定的就怎么做。
你有新的想法,可以按照你的想法自己再设计新的协 ...

谢谢!{:smile:}

qs6361036 发表于 2015-6-3 20:08:37

写的很 好,赞一个!

qs6361036 发表于 2015-6-3 20:38:32

XIUQIN 发表于 2015-4-1 13:24
请问前辈,功能码16写多个保持寄存器为何需要将写入从机的数据再在主机的保持寄存器里做个映像呢?要是主 ...

你好 ,请问 用16功能码写寄存器 ,在程序中 那里写的 ?
我想主机启动后 ,用16功能码 写一帧数据给从机 ,测试一下!

sunnydragon 发表于 2015-6-3 21:44:35

qs6361036 发表于 2015-6-3 20:38
你好 ,请问 用16功能码写寄存器 ,在程序中 那里写的 ?
我想主机启动后 ,用16功能码 写一帧数据给从机 ...

https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32/blob/master/APP/src/app_task.c#L60
打开这个注释,使用这个方法就可以写多个寄存器了

qs6361036 发表于 2015-6-3 21:46:30

sunnydragon 发表于 2015-6-3 21:44
https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32/blob/master/APP/src/app_task.c#L60
打 ...

楼主好人啊,谢谢啦 !

Moriarty_li 发表于 2015-6-4 17:10:40

顶顶顶,现在正在搞FreeModbus!

maimaige 发表于 2015-6-4 17:26:06

楼主,你好,想学习一下这个modbus,有简易的,或者的虚拟的平台不,

sunnydragon 发表于 2015-6-4 20:45:01

maimaige 发表于 2015-6-4 17:26
楼主,你好,想学习一下这个modbus,有简易的,或者的虚拟的平台不,

目前只有STM32平台的Demo,你可以移植到其他平台进行测试。

maimaige 发表于 2015-6-5 09:26:35

sunnydragon 发表于 2015-6-4 20:45
目前只有STM32平台的Demo,你可以移植到其他平台进行测试。

你好,学习这个,用PC机和 STM32就可以学不,具体还需要买什么器件?

qs6361036 发表于 2015-6-10 20:11:52

sunnydragon 发表于 2015-4-1 11:50
地址为2000的寄存器,如果你设定REG_HOLDING_START = 0,REG_HOLDING_NREGS = 0X38E(十进制:910),那 ...

楼主你好 !
发现REG_HOLDING_NREGS地址范围不够大 。比如 ,正在调试富士电机 ,位置地址达到0x5101 。这样的话 ,就不能写入咯 !

sunnydragon 发表于 2015-6-10 21:49:44

本帖最后由 sunnydragon 于 2015-6-10 21:51 编辑

qs6361036 发表于 2015-6-10 20:11
楼主你好 !
发现REG_HOLDING_NREGS地址范围不够大 。比如 ,正在调试富士电机 ,位置地址达到0x5101...

不会吧,你的起始地址设置了没有,默认起始地址是0。

qs6361036 发表于 2015-6-11 08:32:42

sunnydragon 发表于 2015-6-10 21:49
不会吧,你的起始地址设置了没有,默认起始地址是0。

起始地址改为 0x1000 ,M_REG_HOLDING_NREGS改为0x3000 或者0x5000。

都是出现报错 ,Error: L6406E: No space in execution regions with .ANY selector matching user_mb_app_m.o(.bss).

这是不是地址超过范围啦 ?

天下乌鸦一般黑 发表于 2015-8-22 23:50:46

想学习modbus 这个厉害mark一下先

Jerry_Lee 发表于 2015-8-24 07:25:38

这个必须支持啊

haistart 发表于 2015-8-24 11:23:14

好东西必须顶上

LinjieBao 发表于 2015-9-18 08:24:47

谢谢分享!!!!

305546594 发表于 2015-10-1 12:20:40

有没有遇到这种问题的?怎么解决呀

mingxin 发表于 2015-10-1 13:46:24

谢谢楼主分享,学习一下

ablightstar 发表于 2015-10-6 08:22:57

sunnydragon 发表于 2015-3-5 11:05
大家注意下,代码以在Github,OSChina上是最新的。建议使用最新代码,最新代码在稳定性及功能上都有增加。
...

楼主分享精神真好,时隔2年仍然回复并更新

dalarang 发表于 2015-10-6 08:34:20

感谢楼主分享

rootxie 发表于 2015-10-6 08:36:51

305546594 发表于 2015-10-1 12:20
有没有遇到这种问题的?怎么解决呀

你这个问题是不是keil版本太低造成的,你的keil什么版本的?

interstellar_tr 发表于 2015-10-8 14:08:09

您好!
看了freemodbus主站的代码,受益匪浅!谢谢

有一个地方,没看明白,还请赐教. 作为主站, freemodbus是怎么发出第一个查询帧的?

eMBMasterInit和eMBMasterEnable执行完之后,串口处于接收数据的状态,定时器开始运行并进行第一次中断后,定时器关闭
此时,   eRcvState = STATE_M_RX_INIT;
             eSndState = STATE_M_TX_IDLE;(执行完第一次定时器中断)
             eMasterQueuedEvent=EV_MASTER_READY
                               
然后执行eMBMasterPoll,由于eMasterQueuedEvent=EV_MASTER_READY, 所以执行完eMBMasterPoll后,并没有发出第一个查询帧,

请问,freemodbus是怎么发出第一个查询帧的? 请指教,谢谢!

由于不懂RTT,楼主github上的代码,也没去看.

sunnydragon 发表于 2015-10-8 20:07:54

interstellar_tr 发表于 2015-10-8 14:08
您好!
看了freemodbus主站的代码,受益匪浅!谢谢



1、“查询帧”是什么意思?

2、文档和Demo都写的对于使用方法都写的很详细,建议务必要查看Demo和文档,Github:https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32 如果打不开也可以看下我在CSDN上的博客:http://blog.csdn.net/arminkztl/article/details/11738395

interstellar_tr 发表于 2015-10-8 21:13:54

sunnydragon 发表于 2015-10-8 20:07
1、“查询帧”是什么意思?

2、文档和Demo都写的对于使用方法都写的很详细,建议务必要查看Demo和文档, ...

谢谢回复!

485的网络,是主从式的,一个主机和多个从机,主机查询从机,然后从机回应,就是查询帧和应答帧

sunnydragon 发表于 2015-10-9 07:49:33

interstellar_tr 发表于 2015-10-8 21:13
谢谢回复!

485的网络,是主从式的,一个主机和多个从机,主机查询从机,然后从机回应,就是查询帧和应 ...

在我的协议栈里分别对应请求和响应,如果需要发送请求,请查看文档中的请求API

interstellar_tr 发表于 2015-10-9 09:42:24

sunnydragon 发表于 2015-10-9 07:49
在我的协议栈里分别对应请求和响应,如果需要发送请求,请查看文档中的请求API ...

谢谢你!

lzly0302 发表于 2015-11-9 11:02:24

请问下楼主,mbfuncholding.c里eMBException
eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen )有一段
usRegCount = ( USHORT )( pucFrame << 8 );
usRegCount = ( USHORT )( pucFrame );是忘了加|=还是原来就是如此的?

sunnydragon 发表于 2015-11-9 18:50:35

lzly0302 发表于 2015-11-9 11:02
请问下楼主,mbfuncholding.c里eMBException
eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usL ...

好眼力~
我对比sourceforge上的源码http://sourceforge.net/projects/freemodbus.berlios/ 也有这个问题,这应该是FreeModbus官方从机一直遗留的bug。

xh2008email 发表于 2015-11-19 21:32:29

mark一下,这个贴子有点意思。

xh2008email 发表于 2015-11-20 09:54:00

老大,这句是不是有点问题?

sunnydragon 发表于 2015-11-20 19:08:25

xh2008email 发表于 2015-11-20 09:54
老大,这句是不是有点问题?

什么问题?

xh2008email 发表于 2015-11-20 21:04:32

sunnydragon 发表于 2015-11-20 19:08
什么问题?

如果同时出现一个以上的错误时,你只统计了一个错误,是不是?

sunnydragon 发表于 2015-11-21 08:00:05

本帖最后由 sunnydragon 于 2015-11-21 08:08 编辑

xh2008email 发表于 2015-11-20 21:04
如果同时出现一个以上的错误时,你只统计了一个错误,是不是?

只发送一个主机请求API是不会“同时出现一个以上的错误”,所有的错误码在时间上都是互斥的。

还有,为什么说只统计了一个错误??是不是你对 MB_MBR_NO_ERR 没有理解?

xh2008email 发表于 2015-11-21 13:16:14

本帖最后由 xh2008email 于 2015-11-21 13:18 编辑

{:lol:} {:lol:}

xh2008email 发表于 2015-11-21 13:18:55

sunnydragon 发表于 2015-11-21 08:00
只发送一个主机请求API是不会“同时出现一个以上的错误”,所有的错误码在时间上都是互斥的。

还有,为 ...

我没有理解,老大扫一下盲
页: 1 2 [3] 4
查看完整版本: 【开源】自己重构的FreeModbus主机+从机协议栈