使用freemodbus托管多个客户端

时间:2013-10-03 23:52:13

标签: c tcp embedded modbus

我正在开发一个涉及微控制器通过TCP上的modbus与PC通信的项目。我的平台是STM32F4芯片,用C语言编程,没有RTOS。我环顾四周,发现了LwIP和Freemodbus并取得了相当不错的成功,让他们两人都去工作。不幸的是,我现在遇到了一些我不确定如何处理的问题。

我注意到如果我建立连接,然后失去连接(通过拔掉以太网电缆)我将无法重新连接(当然我已经重新连接)。 Freemodbus只允许一个客户端,并且仍然有第一个客户端注册。任何尝试连接的新客户端都将被忽略。在特定的超时期限之后,它不会丢弃第一个客户端,据我所知,这是一个TCP / IP标准。

我的想法是......

  1. 我需要一个可以处理多个客户端的modbus模块。通信丢失后的新客户端请求将被接受,并且第一个客户端最终将因超时而被丢弃。

    • 如何修改Freemodbus来处理这个问题?那里有例子吗?我亲自考虑过,这似乎是一个规模不大的项目。
    • 那里有哪些好的modbus包可以处理多个客户端,是不是太贵而且易于使用?我已经看过几个关于各种选项的线索,但我不确定它们是否满足我的需要。我很难找到自己的东西。大多数不支持TCP和仅支持一个客户端的TCP。支持多个客户通常是一个坏主意吗?
  2. 我从PC上连接微控制器的方法有问题吗?

    • 为什么每次尝试重新连接时PC都会更改端口?如果它保持之前使用的相同端口,这将不是问题
  3. 我是否应该在停止通信后立即从Freemodbus中删除客户端?

    • 这似乎违反了标准,但可能有效。
  4. 我倾向于1.特别是因为我最终还是需要支持多个连接。任何帮助将不胜感激。

    感谢。

0 个答案:

没有答案