之前發過好多次關于modbus方面的帖子,關于200smart標準化的帖子之前就發了兩三篇,距離現在最近的帖子已經超時鎖定了。這次發帖是給之前的程序增加了新功能。在一個高度封裝的子程序里增加新功能是挺困難的,還好成功的完成了。
完整的介紹程序的功能:
1、不需要編程,只需在數據塊里正確填好各項參數,即可完美工作。
2、通信任務分為輪詢任務組,和寫優先任務組。輪詢任務組內可以放置寫操作任務。即寫操作在正常輪流工作里。
3、掉站跳過和定時掉站恢復功能。
4、定時寫優先組內操作的數據讀回功能,即把寫操作變成讀操作把寫入從站的數據讀回到PLC。
5、輪詢任務組里的任意通信任務可以臨時退出和隨時加入輪詢功能里。如果想要人工的將某個輪詢內的通信任務退出輪詢,將其讀寫操作的0和1改變為0、1、10、11、以外的任意數值,這條通信任務就退出輪詢了。
新增功能
6、以上2~4功能可以通過設置來啟用和停用。
假如應用中會出現同一時刻(同一掃描周期)的多個寫操作,那么請把高優先級的寫任務寫在小序號(其實沒序號)的寫操作任務里。因為寫操作的檢查是從小序號開始的,其實是按順序檢查,先檢查到的先執行。
數據塊里的指針賦值是一大麻煩,要么是很大的雙整數,要么是十六進制數,很不方便。這次這里的改進就是輸入簡單的雙整數,比始填4700是希望指向VB4700的指針,封裝的子程序在第一個掃描周期會將4700這些雙整數變成指針。當然,此數據塊中輸入十六進制數和很大的雙整數值的指針數值也可以,是兼容的。
切記設置好庫內存,背影數據等的地址,不要出現干涉。干涉或數據塊填寫的不正確,程序就工作不起來了。
雙口modbus rtu2.6測試240328(1).rar (339 K) 下载次数:1288