抽水系統(tǒng)的計(jì)算機(jī)監(jiān)控設(shè)計(jì)
2.2計(jì)算機(jī)與PLC的通信幀本文引用地址:http://m.butianyuan.cn/article/201612/331216.htm
抽水監(jiān)控系統(tǒng)的設(shè)計(jì)關(guān)鍵之一是計(jì)算機(jī)與PLC的通信幀,PLC的通信系統(tǒng)的基本協(xié)議規(guī)定通信幀有嚴(yán)格的格式,本系統(tǒng)采用松下的PLC。上述Read_x2()指令函數(shù)中的"%01#RCSR0000**"為計(jì)算機(jī)發(fā)出讀PLC的x2狀態(tài)的通信幀,功能說(shuō)明如下表2:
通信幀 | % | 01# | RCS | R0000 | ** | |
說(shuō)明 | 通信標(biāo)志 | 地址 | 命令碼,讀接點(diǎn) | 接點(diǎn)編號(hào) | 效驗(yàn)碼,不效驗(yàn)時(shí)用“*”代替 | 結(jié)束碼 |
2.3計(jì)算機(jī)與PLC的串行口連接
計(jì)算機(jī)與PLC的RS-232串行口有9和25個(gè)腳兩種,而每個(gè)腳位的功能各有不同,正確連線(xiàn)才能使通信成功。計(jì)算機(jī)和PLC的串行口一般為9腳,其定義和功能如下表3:
腳位 | PC機(jī)RS-232,其9支腳位的定義 | PLC上的RS-232,其9支腳位的定義 | ||
簡(jiǎn)寫(xiě) | 意 義 | 簡(jiǎn)寫(xiě) | 意 義 | |
1 | CD | 載波偵測(cè) | FG | 保護(hù)接地 |
2 | RXD | 接收字符 | SD | 傳送字符 |
3 | TXD | 傳送字符 | RD | 接收字符 |
4 | DTR | 數(shù)據(jù)端備妥 | RS | 要求傳送 |
5 | CND | 地線(xiàn) | CS | 清除以傳送 |
6 | DSR | 數(shù)據(jù)備妥 | 未用 | |
7 | RTS | 要求傳送 | SG | 地線(xiàn) |
8 | CTS | 清除以傳送 | CD | 載波偵測(cè) |
9 | RI | 響鈴偵測(cè) |
計(jì)算機(jī)與PLC串行口連接通常有兩種,基于連接和基于不連接的信號(hào)接線(xiàn)方式如圖5所示:
2.4運(yùn)用VC++6.0語(yǔ)言編程實(shí)現(xiàn)對(duì)計(jì)算機(jī)的串行口的讀寫(xiě)
VC++6.0語(yǔ)言對(duì)計(jì)算機(jī)硬件有較好的控制能力,運(yùn)用MSComm控件對(duì)計(jì)算機(jī)的串行口的讀寫(xiě)控制。首先要對(duì)MSComm控件(假設(shè)名稱(chēng)為MSComm1,其對(duì)應(yīng)的控制變量為m_MSComm1)的幾個(gè)屬性進(jìn)行設(shè)置。
m_MSComm1.SetCommPort(1);//設(shè)置通信端口
m_MSComm1.SetSettings("9600,n,8,1");
//設(shè)置通信的波特率、效驗(yàn)方式、數(shù)據(jù)位、停止位
m_MSComm1.SetSthreshold(1);//設(shè)置要接受的字符數(shù),當(dāng)輸入緩沖區(qū)字符書(shū)達(dá)到設(shè)置值,觸發(fā)OnComm事件
m_MSComm1.SetPortOpen(TRUE);//打開(kāi)通信端口
設(shè)置各項(xiàng)屬性后,運(yùn)用MSComm控件對(duì)串行口進(jìn)行讀寫(xiě),將讀到的內(nèi)容寫(xiě)入輸出緩沖區(qū),再將輸入緩沖區(qū)的信息讀到程序去,計(jì)算機(jī)依據(jù)程序自動(dòng)完成工作。
應(yīng)用m_MSComm1.GetInput()和m_MSComm1. SetOutput()屬性就可以將計(jì)算機(jī)輸入緩沖區(qū)的信息讀到程序中和把程序中的信息輸出到計(jì)算機(jī)的輸出緩沖區(qū)。
VC++6.0語(yǔ)言的m_MSComm1.GetInput()和m_MSComm1. SetOutput()屬性發(fā)出和接收的是ColeSafeArray型數(shù)據(jù),發(fā)送前要用SendString(CString m_strSend)實(shí)現(xiàn)轉(zhuǎn)換,接收后要用ReadString ()實(shí)現(xiàn)轉(zhuǎn)換為Cstring字符串。
PLC發(fā)出命令幀后,讀取PLC的返回幀需一定的時(shí)間,否則返回幀的信息還未到達(dá)輸入緩沖區(qū),程序執(zhí)行不正確的信息,所以在讀返回幀的程序前,設(shè)置等待時(shí)間,使用Sleep()讓程序處于休眠狀態(tài)等待完整的回幀的信息。
2.4.PLC程序的配置
1)在PLC程序要設(shè)置波特率、奇偶效驗(yàn)方式、數(shù)據(jù)位、停止位為“ 9600,n,8,1”,與計(jì)算機(jī)程序一致。
2)在PLC程序要設(shè)置為允許計(jì)算機(jī)連接。
3)將程序下載到PLC后,還要將PLC斷電再接通電,通信設(shè)置才生效。
3.結(jié)束語(yǔ):
運(yùn)用計(jì)算機(jī)的高級(jí)語(yǔ)言與計(jì)算機(jī)硬件控制、計(jì)算機(jī)與PLC通信等技術(shù),實(shí)現(xiàn)計(jì)算機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì),本文介紹的控制系統(tǒng)可作為一個(gè)控制模塊嵌入到大型的樓宇監(jiān)控系統(tǒng)中;也可以根據(jù)企業(yè)生產(chǎn)過(guò)程的控制對(duì)象,修改相關(guān)的一些參數(shù),作為工廠(chǎng)的在線(xiàn)監(jiān)控系統(tǒng)。
評(píng)論