带CC430F6137的ModBUS RTU

时间:2017-09-28 12:58:55

标签: c modbus msp430 rs485

我写了一个代码,通过ModBUS RTU与主设备进行通信,9600波特率。我下载了一个模拟程序,它是ModBUS Slave。我可以通过这种方式与PC通信。我可以用微控制器读取输入寄存器。我下载了另一个程序,它是ModBUS Poll,用于读取Krohne IFC050输入寄存器。我得到了Krohne IFC050的寄存器值。但是,我需要使用CC430F6137从Krohne IFC050流量计获取输入寄存器值。我尝试使用相同的代码来读取Krohne IFC050的输入寄存器,但我无法做到。我使用RS485接口进行通信。很多时候我换了RS485的终端。但是,没有回应。我无法通过使用微控制器从Krohne读取任何信息。

Krohne Slave ID = 1。该代码只是试图传达它不专业。在这里,我试图获取设备信息。有我的代码:

div

2 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。这很简单。如果有人遇到类似我的问题,解决方法是检查你的RS485转换器启用引脚。当我更改数据启用和读启用状态时,问题已解决。

感谢您的评论,感谢所有观众。

答案 1 :(得分:0)

由于地址是硬编码的(不会改变)。您可以预先计算CRC高和CRC低。我建议你做以下事情

  1. 采取一些modbus主程序(具有相同的从站ID和波特率)检查您是否能够获得流量 这将确认modbus slave正在工作
  2. 检查微控制器的uart输出。如果您能够以相同的波特率查看有效请求。 这将确认微控制器正在发送有效请求
  3. 将一些modbus从站程序连接到微控制器,检查从站程序是否通过发送数据进行响应。
  4. 连接RS485大多数应该可以工作

    一切顺利