如何通過組態(tài)王實現(xiàn)對stm32的控制及查詢接收數(shù)據(jù)?
一、上位機組態(tài)王
1、建立I/O變量。
首先說一下I/O變量和內(nèi)存變量的區(qū)別及用法:I/O變量是指組態(tài)王可以與外部數(shù)據(jù)交換的變量,能和下位機進行數(shù)據(jù)交換。這個數(shù)據(jù)是雙向的,動態(tài)的。內(nèi)存變量是指不需要和外部應(yīng)用程序進行數(shù)據(jù)交換,只在組態(tài)王內(nèi)部進行數(shù)據(jù)交換。
建立I/O變量。
下面分析一下這個變量對應(yīng)發(fā)送給stm32的報文格式,寄存器選擇4****,讀寫屬性為只讀,功能碼為03(讀取保持寄存器)****為查詢命令的起始地址,數(shù)據(jù)類型是查詢命令請求的數(shù)據(jù)的數(shù)量,這里用的USHORT 這是請求1個數(shù)據(jù)(16位整數(shù))。這樣組態(tài)王下發(fā)給的報文為 01 03 00 00 00 01 84 0A; 01:設(shè)備地址 ;03 :功能碼; 00 00:寄存器地址; 00 01(驅(qū)動的變量的寄存器通道號(寄存器范圍),是按照以1為起始地址的。對于以0為起始地址的設(shè)備,定義變量應(yīng)該加1。例如,如果某設(shè)備的一個變量在數(shù)據(jù)4區(qū),為40100,如果地址是從1開始,對應(yīng)變量定義為40100;如果地址是從0開始,定義為40101。):請求數(shù)據(jù)數(shù); 84 0A:crc校驗碼;這是組態(tài)王燒的標(biāo)準(zhǔn)modbus-rtu驅(qū)動。所以這樣發(fā)。(自己通過虛擬串口和串口助手接收的數(shù)據(jù)分析,以上全為自己總結(jié)發(fā)現(xiàn)不具有標(biāo)準(zhǔn)性,如有不如請指出)下面貼上modbus標(biāo)準(zhǔn)協(xié)議報文格式:
組態(tài)王下發(fā)查詢命令,單片機應(yīng)答,這樣就可以實現(xiàn)單片機向組態(tài)王顯示數(shù)據(jù)。至于stm32怎么應(yīng)答數(shù)據(jù)及程序,接下來有時間更新。
建立畫面及數(shù)據(jù)顯示文本
選擇模擬值輸出:
這樣stm32寫完了modbus驅(qū)動程序就可以與組態(tài)王實現(xiàn)通訊。(注意波特率);
組態(tài)王下發(fā)控制stm32
這里我們使用05功能碼,使用0寄存器。
建立I/O變量:
貼上05功能碼的modbus-rtu協(xié)議報文
在stm32寫好05功能碼的代碼,變可以實現(xiàn)將設(shè)定值傳到下位機實現(xiàn)對燈、步進電機等用電器控制。
提交
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲強基 | ??低晭砭手黝}演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會
中國聯(lián)通首個量子通信產(chǎn)品“量子密信”亮相!