问一下老师modbus中下位机的寄存器地址
各位老师,上位机在给下位机发指令要求数据的时候,modbus协议中的寄存器地址是怎么定义的,下位机中开关量的地址是一个虚拟的吗,就是定义一个表示开关量的位变量,这个变量就是那个地址,不过是由编译器临时分配的吧,那是不是我们上位机的协议中这个寄存器地址是怎么回事呢,他和下位机的这个是怎么连接的呢 。请教一下,谢谢! 自己顶一下啊,在线等。。。。 你的上位机需要实现一个modbus主协议栈。下位机是一个modbus的从协议栈,其上的寄存器地址都是在设计下位机的时候就定义好的,换句话说,你的下位机要有一个定义了各个寄存器的表格。
你的上位机根据这个表格,对寄存器进行读取或者写入操作。 多谢楼上的解答,但这个地址不会是存在这个协议栈上的吧,可不可以就是另外的RAM上的地址甚至是FLASH上的一个地址空间,这个地址是我自己去在RAM上设置的吗,比方说有8个模拟量的输入地址从8000开始连续的8个到8007吗,然后在上位机中就可以直接调用这个地址了吗? 各位老师,上位机在给下位机发指令要求数据的时候,modbus协议中的寄存器地址是怎么定义的,下位机中开关量的地址是一个虚拟的吗,就是定义一个表示开关量的位变量,这个变量就是那个地址,不过是由编译器临时分配的吧,那是不是我们上位机的协议中这个寄存器地址是怎么回事呢,他和下位机的这个是怎么连接的呢 。
请教一下,谢谢!
1、MODBUS协议中的寄存器就是你的单片机程序中的变量(只不过是分组的,DI是一组,DO是一组,AI是一组,AO是一组)
例如:
MODBUS 0X寄存器以“0”为打头,地址从1开始,你的单片机程序中定义一组变量DI。
00001---> DI
00002---> DI
00003---> DI
2、上位机同样是这个
多谢了啊,困扰了我好久的一个问题了,谢谢指教。 咱们论坛上高人和好人都很多,上了很多别的论坛了,就没见过咱们论坛的好人和高人多,哈哈!!鼓励一下再。 那确实 咱们论坛能人好多啊!!学习了!!
页:
[1]