發布日期:2022-10-09 點擊率:78
工控中常常需要查詢體系的作業狀況或許批改作業參數。觸摸屏能夠直觀、生動地顯現作業參數和作業狀況,并且經過觸摸屏畫面能夠直接批改體系作業參數,人機交互性好。單片機廣泛運用于工控范疇中,與觸摸屏協作,可構成杰出的人機交互環境。觸摸屏和單片機通訊,需要依據觸摸屏選用的通訊協議為單片機編寫相應的通訊程序。Modbus協議是美國Modicon公司推出的一種有用支撐操控器之間以及操控器經由網絡(例如以太網)和其它設備之間進行通訊的協議。這篇文章以PIC16F877單片機和人機電子有限公司的eView MT510T型觸摸屏為例,介紹其通訊程序的開發進程。
1 體系構造
完畢觸摸屏與單片機的通訊,首要是處理通訊協議的疑問。這篇文章運用翻開的Modbus通訊協議,以觸摸屏作主站,單片機作從站。eView觸摸屏本身支撐Modbus通訊協議,假定單片機也支撐Modbus協議,就能夠進行通訊了。觸摸屏與單片機之間選用的RS-232C兼容接口直接聯接,傳輸速率設置為9600kb/s。圖1為該體系的電路圖。
將PIC16F877單片機RC6、RC7口設置為異步串行通訊方法,經過MAX232芯片將TTL電平改換為RS232電平,再與eView觸摸屏plc[RS-232]接口相連,即完畢了硬件聯接。eView觸摸屏PLC[RS-232]接口的管腳2為TXD,管腳3為RXD。
2 Modbus通訊協議介紹
Modbus通訊協議是一種串行的主從通訊協議,網絡里僅有一臺設置可作為主機(稱Master),其它設備作為從機(稱Slaver),主機不需編號,從機有必要編號。協議界說了主機查詢及從機應對的信息幀格局。通訊時,主機首要向從機宣告懇求信息,契合相應地址碼的從機接納通訊指令,并除掉地址碼,讀取信息,假定沒有犯錯,則施行相應的使命,然后把施行效果返給主機。若從機接納到的校驗碼與本機核算的紛歧樣,則闡明數據在通訊進程中呈現過錯,從機把這次懇求視為無效,功用代碼將被批改以用于指出答復音訊是過錯的,一同數據段包含了描寫此過錯信息的代碼。當主機收到這一信息時,會從頭發送懇求信息。校驗方法分為LCR(傳送數據為ACSII時)校驗或CRC(傳送數據為二進制時)校驗,這兒選用CRC校驗方法。
信息傳輸為異步方法,并以字節為單位。主從站之間通訊的字格局如表1所示。
表1 通訊的字格局
字格局(串行數據) | 10位二進制 |
開端位 | 1位 |
數據位 | 8位 |
奇偶校驗位 | 無 |
接連位 | 1位 |
Modbus協議可支撐ASCII碼或二進制格局的數據傳輸。ACSII碼方法下每一個字節數據分兩個字節傳送,二進制方法下用一個字節傳送,為了削減量據傳輸量,通常選二進制數據方法。各個區容許發送的字節均為16進制的0~9,A~F。二進制信息幀標準構造為:
初始構造 ≥4字節的時刻
地址碼 1字節
功用碼 1字節
數據區 N字節
過錯校驗 16位CRC碼
完畢構造 ≥4字節的時刻
二進制方法中,信息開端起碼需要3.5個字符的接連時刻,依據運用的波特率,很簡略核算這個接連時刻。發送完畢竟一個字符后,也有一個起碼3.5個字符的接連時刻,然后才華發送一個新的信息。網絡上的設備接連監測網絡上的信息,包含接連時刻。
3 單片機與觸摸屏地址的對應聯絡
eView觸摸屏只支撐Bit和Word地址類型,而實習的單片機或其它操控器還有Byte、Double Word等標明方法,因而在進行通訊時,需要把單片機和觸摸屏的數據進行改換。觸摸屏畫面元件讀取地址的設備類型有LW、0x、1x、3x、4x、RWI、RW等選項。其間,LW標明該元件讀取的是觸摸屏內部的地址,如其它元件的地址;0x標明讀取的是操控器的輸出信號;1x標明讀取的操控器的輸入信號;3x和4x指操控器的寄存器地址類型,其間4x是可讀可寫的,3x是只讀的;RWI、RW都是觸摸屏的內部地址,起輔佐效果。運用這些讀取地址的設備類型,觸摸屏即可顯現或設定操控器寄存器或I/O口的數值。以“數值輸入”元件為例,經過“小鍵盤”輸入數據即可設置單片機寄存器或I/O口的數值。假定主張了“觸發地址”,那么當被觸控時,輸入的數據就被寄存到了指定的單片機地址中。
4 通訊程序的開發
觸摸屏與單片機的通訊程序選用PIC單片機C言語編寫。編譯東西挑選Hitech公司的PICC編譯器。程序共分三大模塊,即初始化模塊、數據接納模塊以及數據處理及發送模塊。主程序流程圖如圖2所示。
PIC16F877單片機USART功用模塊帶有一個八位的波特率發作器BRG,BRG支撐USART的同步和異步作業方法。用SPBRG寄存器操控一個獨立的八位守時器的周期。在異步方法下,發送狀況/操控寄存器TXSTA的BRGH位(即D2)被用來操控波特率。對串行口進行的初始化如下:
GIE=1; %大局接連容許;
SPBRG=25; %設置波特率為9600;
TXSTA=0x04; %挑選異步高速方法;
RCSTA=0x80; %容許同步串行口作業;
RTISC6=1;
TRISC7=1; %將C口的RC6和RC7設置為異步串行通訊方法;
PFIE=1; %外圍接口接連容許;
RCIE=1; %USART接納接連容許;
TXIE=1; %USART發送接連容許;
數據接納模塊由一個接連函數構成。該接連函數將觸摸屏發來的Modbus數據幀存儲在一個自界說的數組中,當一幀數據接納完時,置接納完畢象征位為1,轉入數據處理及發送模塊。串行通訊接納器的基地是接納移位寄存器RSR,當接納到接連時,假定RCREG緩沖器為空,RSR就把接納到的數據送入RCREG。傳送完畢后,接納接連象征位RCIF被置1。實習的接連是不是被CPU照應,能夠經過設置外圍接口接連容許寄存器PIE1的接連容許位RCIE來操控。
數據處理及發送模塊施行Modbus協議功用碼對應的運用。eView觸摸屏與單片機以Modbus協議通訊,用到的Modbus功用碼如表2所示。
表2 通訊程序用到的功用碼
功用碼 | eView地址稱謂 | 含 義 | 作 用 |
01 | 0x | 讀開關量輸出 | 讀取一路或多路開關量輸出狀況 |
03 | 4x | 讀堅持寄存器 | 讀取一個或多個堅持寄存器的數據 |
05 | 0x 1x | 寫開關量輸出 | 強置一路繼電器的“分/合”輸出 |
16 | 3x 4x | 預置多寄存器 | 把詳細的數據裝入一組銜接的堅持寄存器 |
以Modbus功用碼03為例來闡明觸摸屏及單片機的實習通訊數據格局。如單片機地址編號為01H,觸摸屏需要查看單片機中地址為0031H的寄存器的值,發送指令格局如表3所示。
表3 觸摸屏發送數據構造
數據段稱謂 | 數據值 |
地址 | 01 |
功用碼 | 03 |
讀取地址高位 | 00 |
讀取地址低位 | 31 |
讀取數據個數高位 | 00 |
讀取數據個數低位 | 01 |
CRC校驗碼高位 | D5 |
CRC校驗碼低位 | C5 |
假定單片機中地址為0031H的寄存器接連為05H,則單片機的回復指令如表4所示。
表4 單片機應對數據構造
數據段稱謂 | 數據值 |
地址 | 01 |
功用碼 | 03 |
讀取字節數 | 02 |
寄存器數據高位 | 00 |
寄存器數據低位 | 05 |
CRC校驗碼高位 | 78 |
CRC校驗碼低位 | 47 |
當波特率抵達38400kb/s時,通訊依然安穩牢靠。本體系具有聯接電路簡略、組態活絡、通訊牢靠性高檔特征,并已成功運用于物料挑選操控體系項目中。因為Modbus通訊協議的翻開性的特征,國外進口操控器串行通訊大者支撐該協議,因而這篇文章所完畢的選用Modbus協議的串行通訊具有廣泛的運用價值。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航