平 路
(國(guó)網(wǎng)三門(mén)峽供電公司, 河南 三門(mén)峽 472000)
工業(yè)監(jiān)控系統(tǒng)用于對(duì)工業(yè)設(shè)備或場(chǎng)所進(jìn)行監(jiān)視控制,監(jiān)控系統(tǒng)一般包括傳感器、控制器、執(zhí)行器,控制器用的較多的是PLC,PLC 與PLC 之間,PLC 與傳感器、 執(zhí)行器之間的通信方式多種多樣, 通信方式的選擇和實(shí)施是監(jiān)控系統(tǒng)的重點(diǎn),也是難點(diǎn),本文擬對(duì)以PLC 為核心的工業(yè)監(jiān)控系統(tǒng)的通信方式和具體實(shí)現(xiàn)方法加以分析。
常用的本地工業(yè)監(jiān)控系統(tǒng)包括監(jiān)測(cè)設(shè)備和環(huán)境參數(shù)的傳感器,如溫度、壓力、流量等傳感器,用于控制設(shè)備和環(huán)境因素的各種執(zhí)行器,如變頻器、電磁閥、接觸器等,以及與現(xiàn)場(chǎng)設(shè)備配套的觸摸屏、儀器儀表等。如果需要遠(yuǎn)程監(jiān)控,還需要云智能網(wǎng)關(guān)、云平臺(tái)、智能終端等設(shè)備。本文主要分析本地工業(yè)現(xiàn)場(chǎng)監(jiān)控系統(tǒng),其常用構(gòu)架見(jiàn)圖1。

圖1 工業(yè)現(xiàn)場(chǎng)常用監(jiān)控系統(tǒng)架構(gòu)圖
在現(xiàn)場(chǎng)工業(yè)監(jiān)控系統(tǒng)中,PLC 是監(jiān)控系統(tǒng)核心器件,本文以西門(mén)子S7-1200PLC 為例介紹現(xiàn)場(chǎng)工業(yè)監(jiān)控系統(tǒng)常用的通信方式。
如果一個(gè)系統(tǒng)由多個(gè)站組成, 每個(gè)站由一個(gè)S7-1200PLC 控制,則可以將其中一個(gè)PLC 做為上位機(jī)(主站),其它PLC 做為該上位PLC 的智能IO 設(shè)備,用智能IO 設(shè)備通信方式,將各個(gè)站的信息匯集到上位PLC,也可以從上位PLC 下發(fā)控制指令到其它做為智能IO 設(shè)備的PLC 中。
分布式IO 通信是指PLC 與分布式IO 設(shè)備之間的通信。當(dāng)S7-1200PLC 的本機(jī)需要分層分機(jī)架布局IO 點(diǎn)時(shí),可以采用這種通信方式。
開(kāi)放式以太網(wǎng)通信適宜于PLC 與其它設(shè)備間的報(bào)文傳輸。 TSEND_C 指令把發(fā)送數(shù)據(jù)塊的指令發(fā)送給對(duì)方,TRCV_C 指令將從對(duì)方接收的數(shù)據(jù)存放在接收數(shù)據(jù)塊中。
Modbus RTU 通信用于與支持Modbus RTU 通信協(xié)議的設(shè)備進(jìn)行通信。 PLC Modbus RTU 通信指令有三條:MB_COMM_LOAD 指令、MB_MASTER 指令和MB_SLAVE指令。 儀器儀表、變頻器等用Modbus RTU 協(xié)議通信的比較多。
S7-1200PLC 的自由口通信是串行通信。 適宜與不支持Modbus 協(xié)議的儀器儀表通信。 S7-1200PLC 的自由口通信指令有兩條: 一是SEND_PTP (發(fā)送數(shù)據(jù)); 二是RCV_PTP(接收數(shù)據(jù))。
S7-1200PLC 之間,S7-1200 與其它設(shè)備儀器之間不同通信方式的實(shí)現(xiàn)方法和步驟如下:
PLC 之間的智能IO 設(shè)備通信方式可用在兩個(gè)或多個(gè)PLC 之間通信。
(1)硬件與接線(xiàn)。 兩個(gè)或多個(gè)PLC 之間通過(guò)交換機(jī),用網(wǎng)線(xiàn)連接。
(2)組態(tài)與編程。 ①添加兩個(gè)或多個(gè)PLC,設(shè)置IP 地址,使不同PLC 處于同一網(wǎng)段;②智能設(shè)備通信是主從通信,在擬作為從站的PLC 的硬件組態(tài)中,點(diǎn)擊PLC 的網(wǎng)口,在屬性的常規(guī)-操作模式-智能設(shè)備通信中,設(shè)置發(fā)送區(qū)和接收區(qū);③根據(jù)上述發(fā)送區(qū)和接收區(qū)的設(shè)置,分別在主PLC 和作為智能IO 設(shè)備的從PLC 進(jìn)行編程。
(1)硬件與接線(xiàn)。 智能閥島是智能IO 與電磁閥匯流板的集成產(chǎn)品。與傳統(tǒng)的離散式電磁閥相比,簡(jiǎn)化了接線(xiàn),增加了分布式IO 的控制功能。
分布式IO 集成了通信接口、電源模塊、I/O 模塊等。
PLC 與閥島之間用網(wǎng)線(xiàn)連接。
(2)組態(tài)與編程。
GSD 文件安裝:①打開(kāi)Portal 軟件,打開(kāi)項(xiàng)目視圖,點(diǎn)擊選項(xiàng)中的管理通用站描述方件(GSD);②選擇閥島所對(duì)應(yīng)用GSD 文件,安裝。
設(shè)備組態(tài):①選擇網(wǎng)絡(luò)視圖,點(diǎn)擊硬件目錄,選擇過(guò)濾;②點(diǎn)擊Profinet 下的I/ O;③雙擊Syckin Intelligent 下的SV2Series;④連接PLC 和分布式IO;⑤設(shè)定智能閥島參數(shù):修改閥島IP 地址;⑥修改閥島名稱(chēng)。
組態(tài)擴(kuò)展模塊:在設(shè)備視圖右側(cè)硬件目錄中,選中模塊下的SV2PN,拽到設(shè)備視圖中。
編程:硬件組態(tài)后,根據(jù)智能閥島屬性中的分配地址進(jìn)行編程。 智能閥島只有輸出Q 地址。
(1)硬件與接線(xiàn):①硬件:PLC 與RFID 的開(kāi)放式以太網(wǎng)通信硬件包括PLC 和RFID。 RFID 是一種非接觸的射頻識(shí)別技術(shù), 通過(guò)射頻信號(hào)識(shí)別特定目標(biāo)標(biāo)簽數(shù)據(jù)并進(jìn)行讀寫(xiě)傳輸; ②接線(xiàn):RFID 與PLC 通過(guò)網(wǎng)線(xiàn)連接;③RFID 軟件調(diào)試:RFID 軟件調(diào)試包括IP 地址設(shè)置、 端口號(hào)、功率、讀取模式等。
(2)編程:PLC 與RFID 開(kāi)放式以太網(wǎng)通信用到了兩條指令:TSEND_C 指令和TRCV_C 指令,這里以和TRCV_C指令為例分析。 TSEND_C 指令如圖2 所示。

圖2 TSEND_C 指令
TSEND_C 指令參數(shù)含義如下:
REQ:在上升沿啟動(dòng)發(fā)送工作。
CONT:控制通信連接,0-斷開(kāi)通信連接;1-建立并保持通信連接。
LEN:發(fā)送的最大字節(jié)數(shù),如果在參數(shù)DATA 中使用純符號(hào)值,則LEN 參數(shù)的值必須為0。
CONNECT:指向連接描述的指針,這個(gè)包含連接關(guān)系的指針會(huì)自動(dòng)生成。
DATA:發(fā)送數(shù)據(jù)塊,需要將其屬性中的優(yōu)化數(shù)據(jù)塊中的對(duì)鉤去掉并編譯,并在其中建數(shù)組變量。
編程方法:編程中先將RFID 中的報(bào)文內(nèi)容分別寫(xiě)在發(fā)送數(shù)據(jù)塊的數(shù)組元素中, 然后啟動(dòng)發(fā)送指令RCV_C,將發(fā)送數(shù)據(jù)塊中的內(nèi)容發(fā)送到RFID 中, 然后啟動(dòng)TRCV_C 指令接收RFID 反饋的數(shù)據(jù)。
(1)硬件與接線(xiàn):PLC 與變頻器的Modbus RTU 通信需要的硬件為:支持Modbus 的變頻器、S7-1200 的PLC、S7-1200 配套的通信擴(kuò)展板CB1241 或擴(kuò)展模塊CM1241。
需要注意: 接線(xiàn)時(shí)要將CM1241 或CB1241 的RS485的A 端或正端接變頻器的B 端,RS485 的B 端或負(fù)端接變頻器的A 端,這一點(diǎn)與其它RS485 的接線(xiàn)方式有所不同。
(2)組態(tài)和編程:①組態(tài)。 將硬件目錄-通信模塊-點(diǎn)到點(diǎn)中的CM1241(RS485)添加到PLC 模塊的左側(cè)通信擴(kuò)展槽中,并設(shè)置對(duì)應(yīng)參數(shù),如“9600-N-8-1”等;②編程。編程中要用到Modbus RTU 指令:MB_COMM_LOAD 和MB_MASTER 或MB_SLAVE 指令。 這里以主站指令MB_MASTER 為例介紹。
MB_COMM_LOAD 指令作用: 組態(tài)Modbus 通信端口,該指令只需執(zhí)行一次。
MB_COMM_LOAD 指令主要參數(shù)含義:
REQ:上升沿執(zhí)行
PORT:通信端口ID。
PARITY:奇偶校驗(yàn)選項(xiàng)。 0-無(wú)、1-奇、2 偶。
BAUD:波特率。
MB_DB:指向MB_MASTER 的背景數(shù)據(jù)塊。
DONE:指令執(zhí)行完畢,無(wú)錯(cuò)。
ERROR:錯(cuò)誤,0-無(wú)錯(cuò)、1-有錯(cuò)。
STATUS:錯(cuò)誤代碼,存在WORD 變量中。
MB_MASTER 指令作用:作為MASTER 主站,可以訪(fǎng)問(wèn)一個(gè)或多個(gè)MASTER 從站中的數(shù)據(jù),因?yàn)镽S485 通信是半雙工,所以多個(gè)MASTER 指令要進(jìn)行輪詢(xún)?cè)L問(wèn)。
MB_MASTER 指令主要參數(shù)含義:
REQ: 請(qǐng)求輸入,0-無(wú)請(qǐng)求,1—請(qǐng)求將數(shù)據(jù)發(fā)送到MASTER 從站設(shè)備。
MB_ADDR:Modbus RTU 從站地址。 默認(rèn)地址范圍:0-247。
MODE:模式選擇:讀取、寫(xiě)入或診斷。
DATA_ADDR:從站中的起始地址,指定Modbus 從站中將要訪(fǎng)問(wèn)的數(shù)據(jù)起始地址,比如40001。
注意:ModbusRTU 設(shè)備協(xié)議中的數(shù)據(jù)地址和指令中的Modbus 寄存器地址之間需要換算。 DATA_LEN:從站中被訪(fǎng)問(wèn)的數(shù)據(jù)長(zhǎng)度。 以位或字為單位。
DATA_PTR: 參數(shù)是指向用來(lái)寫(xiě)入或讀取數(shù)據(jù)的數(shù)據(jù)塊或位存儲(chǔ)器的指針, 書(shū)寫(xiě)參考格式:P#DB1.DBX0.0 INT 2。
利用上述兩條指令就可以讀取或?qū)懭胱冾l器參數(shù),如啟停命令或運(yùn)行頻率等。
如果儀器儀表不支持Modbus 協(xié)議, 就需要采用S7-1200PLC 的自由口通信協(xié)議來(lái)完成PLC 與儀器儀表的通信。
(1)硬件和接線(xiàn):掃碼槍內(nèi)置二維碼傳感器。 二維碼傳感器由光源發(fā)出的光線(xiàn)照射到條形碼, 反射光成像在光電轉(zhuǎn)換器,譯碼成數(shù)字信號(hào)經(jīng)自由口通信傳輸給PLC。
掃碼槍上有網(wǎng)口, 可分解為RS232 串口和USB 口。用調(diào)試軟件設(shè)置掃碼槍參數(shù)時(shí),需要用網(wǎng)口轉(zhuǎn)USB 轉(zhuǎn)接線(xiàn)與電腦相連。
PLC 需要在左側(cè)擴(kuò)展一個(gè)RS232 的通信模塊, 以便與PLC 進(jìn)行串口連接。
(2)組態(tài)和編程:①掃碼槍軟件設(shè)置。點(diǎn)擊設(shè)置-點(diǎn)擊系統(tǒng)設(shè)置-點(diǎn)擊掃描設(shè)置-將解碼格式改為感應(yīng)模式-點(diǎn)擊保存到設(shè)備。在設(shè)置里面點(diǎn)擊通信接口-點(diǎn)擊RS232 設(shè)置-將通信格式設(shè)置為“9600-N-8-1”,點(diǎn)擊保存到設(shè)備;②PLC 硬件組態(tài): 將硬件目錄-通信模塊-點(diǎn)到點(diǎn)中的CM1241(RS232)添加到PLC 模塊的左側(cè)通信擴(kuò)展槽中,并設(shè)置其對(duì)應(yīng)參數(shù),如“9600-N-8-1”等;③編程:編程會(huì)用到兩個(gè)通信指令:一個(gè)是SEND_PTP,其功能是發(fā)送發(fā)送緩沖區(qū)中的數(shù)據(jù);另一個(gè)是RCV_PTP,其功能是啟用接收信息,將接收的數(shù)據(jù)放在接收緩沖區(qū)中。
這里以RCV_PTP 為例進(jìn)行介紹。
RCV_PTP 的位置:
指令-通信-通信處理器-點(diǎn)到點(diǎn)。可以將其拖拽到程序編輯區(qū)中。
RCV_PTP 指令參數(shù)含義:
EN_R:?jiǎn)⒂媒邮罩噶睿仙赜|發(fā)。
PORT:通信模塊的端口標(biāo)識(shí)符,當(dāng)添加了通信模塊后會(huì)自動(dòng)生成端口標(biāo)識(shí)符。
BUFFER:指向接收緩沖區(qū)的起始地址,不要在接收緩沖區(qū)中使用STRING 類(lèi)型的變量。 新建一個(gè)掃碼槍數(shù)據(jù)接收DB 塊,在其中新建變量Array[0..10],然后將其屬性中優(yōu)化的塊訪(fǎng)問(wèn)的對(duì)鉤去掉,對(duì)塊進(jìn)行編譯。
本文主要分析了工業(yè)設(shè)備及場(chǎng)所的本地監(jiān)控系統(tǒng)中PLC 與PLC 之間,PLC 與其它設(shè)備器件之間的通信方式及實(shí)現(xiàn)方法,這些方法分為兩類(lèi):以太網(wǎng)通信(智能IO 設(shè)備通信、分布式IO 通信、開(kāi)放式以太網(wǎng)通信)和串行通信(Modbus 通信、自由口通信)。 本文所分析通信方式也可在其它領(lǐng)域推廣應(yīng)用。