我在TwinCAT3上创建一个通过Modbus-TCP服务器(192.168.2.16)获取数据的程序,以从其他PC(从机:192.168.2.20)获取数据:
但是,我在wireshark中注意到请求的周期约为200ms,而不是100ms。为什么周期是200ms?
我希望周期是相同的(100毫秒)
您的功能块需要多个周期才能运行。
根据应用的不同,功能块可能需要多个周期才能完成,这就是为什么它们通常配置为:
就您的情况而言,我相信在将 bExecute 设置为 TRUE 后,您将看到 bBusy 处于高电平的单个周期。当功能块需要与某些外部对象(如网络设备)通信时,通常会出现这种情况。
针对时序问题的建议解决方案是减少循环时间(应该是 5/10 毫秒),然后在所需的循环时间上设置“bExecute”。 这允许功能块运行几个周期并在开始新请求之前返回其数据。