*近,幾個客戶一直在咨詢西門子S7-200型號PLC與工控機通訊的問題,南京研維信息技術解決方案部門針對這方面需求,特意以專題形式予以解答,本文就以研華工控機為典型工控機類型進行介紹,下位機PLC選擇大家比較常見的西門子S7-200型號產品,我們選擇的是微軟的Visual C++作為程序開發語言,具體通訊協議架構如下:
首先,整個示范程序的基本流程架構思路如下:用上位機作主機,向PLC發送讀/寫指令,PLC接收到信息后判斷傳輸正確與否,若錯誤則反饋BCC碼錯誤信息給上位機,若為讀指令,在本系統中則讀取實時壓力值,若為寫指令,則向PLC的M寄存器區寫入數據,從而控制現場設備的運行。同時上位機向PLC詢問寫入數據庫標志位狀態,若為1則將壓力值寫入后臺數據庫。系統中計算機通過COM口發送指令到PLC的PORTO(或PORT1)口,PLC通過RCV接收指令,然后對指令進行譯碼,譯碼后調用相應的讀/寫子程序實現指令要求的操作,并返回指令執行的狀態信息。
上位機串口設置程序如下:
BOOL MultiDoc::ConfigConnection()
{DCB dcb;
if(!GetCommState(m_hCom,&dcb))
return FALSE;//不能獲取當前配置作錯誤處理
dcb.fBinary=TRUE;
dcb.BaudRate=9600;//數據傳輸速率
dcb.ByteSize=8;//每字節的位數為8
dcb.fParity=FAISE;//不啟用奇偶校驗
dcb.StopBits=ONESTOPBIT;//1個停止位
return SetCommState(m_hCom,&dcb);
//設置串行設備控制參數}
更多信息請訪問南京研維信息網站。 |
|