回覆列表
  • 1 # 使用者3296806220335

    上位機組態軟體的IO驅動若提供modbus協議,則其變數地址直接使用modbus協議的地址就可以了。modbus協議的地址格式主要是四種類型:0xxxx(線圈,DO型別)、1xxxx(觸點,DI型別)、3xxxx(輸入暫存器,AI型別)和4xxxx(保持暫存器,AO型別)。

    下位機ARM stm32若程式是自己開發,需要程式中定義上述modbus協議的4種地址的資料區,再把4種地址資料區與ARM stm32的IO口建立對映關係,如:

    DI口資料===(MOV、COPY指令)===>1xxxx資料區,

    AI口資料===(MOV、COPY指令)===>3xxxx資料區,

    0xxxx資料區===(MOV、COPY指令)===>DO口,

    4xxxx資料區===(MOV、COPY指令)===>AO口。

    這4種地址的資料,需在主程式中實時、動態地重新整理。

    當然,需要在通訊子程式中實現modbus協議的事務操作,即接收到modbus的資料幀後,根據功能碼及地址,相應地處理modbus協議的4種地址區的資料。

  • 中秋節和大豐收的關聯?
  • 影響問題解決的主要因素有哪些?