【问题标题】:c# SerialPort MultiDrop connectionc# SerialPort MultiDrop 连接
【发布时间】:2011-08-17 01:26:49
【问题描述】:

我一直在网上阅读,找不到任何有关在 c# 中使用 RS485 MultiDrop 连接的信息

提供一点见解。我编写了一个使用 MODBUS RTU 协议与串行设备通信的应用程序。现在客户告诉我,设备可能使用多点通信链路连接。作为一个新手,当涉及到使用串行设备时,我有点迷失了。

我的问题很简单:我从哪里开始?迄今为止,谷歌搜索只为不同的串行通信标准生成了硬件转换器和维基百科条目。

谢谢!

【问题讨论】:

    标签: c# serial-port


    【解决方案1】:

    RS485 是一种标准,用于定义特定多点网络布置的电气特性。我曾经把它用作仪器的内部总线——主控板驱动各种泵,这些泵布置在 RS485 网络上。

    您可以获得半双工和全双工安排(half 意味着一个设备一次可以通话 - full 意味着发送和接收可以同时发生)。

    真正使用它与使用 RS232 或串行端口并没有太大的不同,而且正如您所见,您可以获得串行到 RS485 的转换器。你可以通过C#中的串口驱动来使用它。

    SerialPort Class

    你的主要问题是 RS485 并没有真正解决它应该如何使用 - 它是一个相当低级的电气规范,它没有定义你应该如何使用它来进行通信。

    您需要考虑的主要问题是如何协调这一切。使用 RS232 - 连接了两件东西,这很容易 - 通常是一台计算机和一些设备。使用 RS485,可以连接很多东西。因此,您需要某种方式来寻址每个设备。您没有提供有关此处提到的“设备”的任何详细信息 - 但如果它们打算在 RS485 上连接 - 那么将有一种解决它们的方法。然而,有几种方法可以工作 - 所以如果没有更多细节,我无法帮助你。使用我开发的系统,所有通信都是由“主”设备(即我的控制板 - 或您的 c# 应用程序)发起的,并且发送的每条消息都有接收者的地址 - 所以正确的泵知道该指令是预期的为它。

    我希望这会有所帮助。真的没有那么复杂,但是您需要考虑这些设备的功能,它们的寻址方式,并考虑您需要来回发送的消息。您可以使用 C# SerialPort 类来实际完成这项工作。

    顺便说一句,另一个答案中提到的书看起来很棒。如果这对您来说是全新的,我真的会考虑购买它。它涵盖了串口通信,并有一个关于RS485的章节。

    【讨论】:

    • 我还应该指出,USB 本身与串行端口完全不同。是的,您可以获得 USB 串行端口转换器,但这些是插入 USB 端口的设备,但对于您的应用程序软件来说,它们看起来像一个串行端口。
    • 谢谢你,这非常有帮助。我的“设备”是我公司生产的自动化控制设备……所以你找不到任何规格。我正在使用 MODBUS RTU 协议与它通信。我很困惑,因为给我的术语是错误的。他们只是希望能够从可用从属设备列表中选择不同的从属设备。我的应用程序是主人。你的回答写得很好,内容丰富。复选标记。
    【解决方案2】:

    我没有使用过 RS485,但this book 可以帮助理解串行端口和 USB。

    here 是另一个讨论规格的链接,here 是另一个链接。我认为它们不会很容易在 C# 中实现,但可能会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多