Siemens CP340模塊與島電SR93溫控儀表之間的ASCII碼通訊
1、 引言 智能控制儀表是工業(yè)控制中最常用的控制器之一,其主要是針對某一特定的參數(shù)(如壓力、溫度、流量等),采用先進的控制算法(如PID、自適應(yīng)PID、模糊邏輯等)來達到精確控制被控參數(shù)的目的,具有專業(yè)性強、智能化高、控制算法先進、使用方便等特點。但各個廠家的智能控制儀表存在著通訊協(xié)議不統(tǒng)一,通訊網(wǎng)絡(luò)簡單如僅提供RS485網(wǎng)絡(luò),RS232網(wǎng)絡(luò)等缺點,因此要把智能控制儀表集成到工廠SCADA HMI(Supervisory Control And Data Acquisition Human Machine Interface)系統(tǒng)就比較難以實現(xiàn)。而可編程邏輯控制器(簡稱PLC)以其運行可靠、集成度高、可擴展性強而在工業(yè)控制中得到廣泛的應(yīng)用,而且各個PLC生產(chǎn)廠家提供了多種通訊模塊,如工業(yè)以太網(wǎng)Ethernet模塊,Profibus DP現(xiàn)場總線模塊,AS-I模塊,點到點串行通訊模塊等。因此可以利用PLC的通訊模塊讀取智能控制儀表中的數(shù)據(jù),然后通過PLC中的工業(yè)以太網(wǎng)模塊、現(xiàn)場總線模塊連接到企業(yè)SCADA HMI系統(tǒng)中達到完美的結(jié)合。 作者在設(shè)計某自動化生產(chǎn)線時,需要將日本島電公司生產(chǎn)的SR93系列溫控儀表的參數(shù)讀取到Siemens公司的S7-300 PLC中,參與實際的連鎖控制。SR93系列溫控儀表提供RS485通訊接口,但SR93系列溫控儀表的通訊協(xié)議為日本島電公司自定義的ASCII碼協(xié)議。為了能夠?qū)x表的參數(shù)讀入到Siemens PLC中,采用了Siemens 公司的點到點通訊模塊CP340,通過集成在CP340通訊模塊中ASCII碼通訊協(xié)議通過RS485網(wǎng)絡(luò)讀取儀表中的數(shù)據(jù)。 2、 通訊系統(tǒng)構(gòu)成及儀表協(xié)議 在本自動化生產(chǎn)線中,要求將13臺SR93儀表的溫度實際數(shù)值、設(shè)定數(shù)值等通過CP340通訊模塊讀取到PLC中,其網(wǎng)絡(luò)的結(jié)構(gòu)如下所示:
SR93溫控儀表與PLC之間構(gòu)成的網(wǎng)絡(luò)為RS485網(wǎng)絡(luò),雙方以9600bps的通訊速率進行通訊,以下為CP340模塊和SR93溫控儀表及通訊協(xié)議的簡單介紹。 (1)、CP340模塊 CP340通訊處理器是Siemens公司提供的點到點連接的串行通訊的低成本解決方案,它可以在Simatic S7-300和ET200M中使用,該通訊模塊提供了三種不同形式的傳輸接口: a、RS232C(V.24) b、20mA(TTY) c、Rs422/Rs485(X.27) 該模塊可以實現(xiàn)ASCII碼,3964(R)和打印機驅(qū)動三種通訊協(xié)議,通過集成在STEP 7中的參數(shù)化工具可進行簡單的參數(shù)化,其設(shè)置主要包括通訊方式(波特率、數(shù)據(jù)位數(shù)、停止位數(shù)和奇偶校驗)、接收幀結(jié)束方式、接口方式(485 Or 422)等,對于同Sr93溫控儀表通訊,本設(shè)計中可以設(shè)置為:a、接收幀結(jié)束方式:接收到固定的36個字節(jié)的數(shù)據(jù) b、通訊方式:9600,8,n,1 c、接口方式:RS485,其余的設(shè)置為默認方式。 (2)、SR93系列溫控儀表通訊參數(shù) SR93系列溫控儀表是日本島電公司生產(chǎn)的高性能單回路調(diào)節(jié)器,0.3級控制精度,提供PID、自適應(yīng)PID控制算法和RS485、RS232通訊接口,而且儀表為模塊化設(shè)計,可以根據(jù)用戶的選擇安裝相應(yīng)的模塊。為了能夠與CP340模塊通訊,需要設(shè)置儀表中的參數(shù)為: 序號 儀表中參數(shù)符號 設(shè)置數(shù)值 說明 1 Addr 1-255 儀表通訊地址,范圍為1-255 2 Data 8n1 通訊數(shù)據(jù)格式,8位數(shù)據(jù)位,無校驗,1位停止位 3 Schr Att 通訊控制碼 起始碼 文本結(jié)束碼 結(jié)束碼 @(40H) “:”(3AH) CR(0DH) 4 Bcc 3 校驗碼計算方式:異或 Xor 5 BPS 9600 通訊波特率:9600b/s (3)、SR93系列溫控儀表通訊協(xié)議 SR93系列溫控儀表的通訊協(xié)議是日本島電公司自定義的ASCII碼通訊協(xié)議,其主要包括讀數(shù)據(jù)命令、寫數(shù)據(jù)命令、應(yīng)答數(shù)據(jù)命令。 A、 讀寫數(shù)據(jù)發(fā)送命令 SR93系列溫控儀表的讀寫發(fā)送命令基本相似,其命令格式如下所示:
發(fā)送命令中所有的位置都必須采用ASCII碼方式,其通訊發(fā)送命令格式的解釋如下: a、 通訊的起始符,占用一字節(jié),“@”(40H); b、 通訊儀表地址,占用兩字節(jié),由8位二進制轉(zhuǎn)換而成,地址范圍1-255,這8位二進制碼被分成高4位和低4位,其中高4位被送入(2)中,低4位被送入(3),并轉(zhuǎn)換成ASCII碼,如儀表地址為10,則(2)中為30H,(3)中為41H; c、 通訊儀表地址的子地址,占用一字節(jié),固定為“1”(31H); d、 通訊命令類型,占用一字節(jié),“R”(52H)表明在上位機發(fā)送或儀表應(yīng)答中的讀命令,“W”(57H)表明在上位機發(fā)送或儀表應(yīng)答中的寫命令; e、 通訊命令讀取數(shù)據(jù)的起始地址,占用四字節(jié),由16位二進制代碼轉(zhuǎn)換而成,這16位被分成四組,并轉(zhuǎn)換成相應(yīng)的ASCII碼,如讀取的起始地址為0100,則(6)為30H,(7)為31H,(8)為30H,(9)為30H; f、 通訊中連續(xù)讀取數(shù)據(jù)的數(shù)量,占用一字節(jié),表明上位機要連續(xù)讀取多少個參數(shù),取值范圍為“0”(30H)~“9”(39H),最多一次讀取10個數(shù)據(jù); g、 通訊數(shù)據(jù),字節(jié)數(shù)量取決于寫數(shù)據(jù)的數(shù)量,數(shù)據(jù)總以“,”(2CH),數(shù)據(jù)項與數(shù)據(jù)項之間不需要任何分隔符,數(shù)據(jù)的長度主要取決于第(10)的數(shù)值,每一個數(shù)據(jù)項由16為二進制代碼組成(1個字),每4為被分成一個數(shù)據(jù)單元,同時每個數(shù)據(jù)單元又被轉(zhuǎn)換成ASCII數(shù)據(jù),當(5)為“R”讀命令時,該項沒有; h、 數(shù)據(jù)發(fā)送結(jié)束符,占用一字節(jié),“:”(3AH),所有數(shù)據(jù)和命令在此位之前都已發(fā)送完成; i、 BCC塊校驗,占用兩字節(jié),這里采用Xor方式,BCC校驗數(shù)據(jù)被分成高4位和低4位,并被轉(zhuǎn)換成ASCII碼,當校驗碼錯誤,儀表將沒有響應(yīng),設(shè)有如下的發(fā)送數(shù)據(jù),其BCC計算方式如下: 例:STX 0 2 1 R 0 1 0 0 0 EXT 6 A CR (30H)?(32H)?(31H)?(52H)?(30H)?(31H)?(30H)?(30H)?(30H) =6AH BCC校驗結(jié)果 ⒀:"6"=36H ⒁:"A"=41H j、 回車符,一字節(jié),CR(0DH) B、 儀表應(yīng)答格式
從上面的通訊幀格式可以看出,與上位機發(fā)送幀基本一致,唯一的區(qū)別在e、應(yīng)答代碼,兩字節(jié),由8位二進制代碼轉(zhuǎn)換而來,這8位被分成高4位和低4位,并轉(zhuǎn)換成相應(yīng)的ASCII碼,可以通過查詢應(yīng)答代碼表來檢查錯誤。 3、 軟件實現(xiàn)方法 要通過CP340通訊模塊同SR93系列溫控儀表之間的通訊,PLC程序的設(shè)計也是一個比較重要的環(huán)節(jié),其主要包括CP340發(fā)送讀取數(shù)據(jù)命令程序、CP340發(fā)送寫數(shù)據(jù)命令程序、CP340接收儀表數(shù)據(jù)通訊程序以及對讀取到的數(shù)據(jù)進行處理的程序。 (1)、CP340發(fā)送讀取程序的設(shè)計 考慮到系統(tǒng)有13塊儀表,采用輪詢的方式訪問每塊儀表,而對于發(fā)送讀取數(shù)據(jù)的DB塊僅是儀表地址和BCC校驗碼不相同,因此,所有的儀表采用一個相同的DB塊來執(zhí)行,根據(jù)不同的儀表號修改相應(yīng)的BCC校驗碼和儀表地址。發(fā)送數(shù)據(jù)的DB塊結(jié)構(gòu)如下:
儀表地址的修改采用周期中斷OB35來執(zhí)行,每中斷一次,儀表號加1,直到13為止,然后回到地址1重復(fù)執(zhí)行。至于發(fā)送命令的設(shè)計則采用如下的程序來執(zhí)行:
(2)、CP340發(fā)送寫數(shù)據(jù)程序的設(shè)計 由于系統(tǒng)對儀表進行寫數(shù)據(jù)操作不是一個連續(xù)的過程,僅是在需要的時候才發(fā)送命令到儀表中,因此,發(fā)送寫數(shù)據(jù)程序不能采用連續(xù)調(diào)用過程,而是采用一個脈沖調(diào)用,同時在發(fā)送寫數(shù)據(jù)命令時,一定要屏蔽讀數(shù)據(jù)命令的發(fā)送。由此,寫數(shù)據(jù)PLC程序設(shè)計如下所示:
對于寫數(shù)據(jù)發(fā)送命令程序塊,主要完成填寫設(shè)置數(shù)據(jù)地址、BCC碼計算、儀表地址的修改和設(shè)置數(shù)據(jù)的填寫,最后調(diào)用發(fā)送FB3將數(shù)據(jù)發(fā)送到對應(yīng)的儀表。 (3)、CP340接收程序的設(shè)計 接收程序的設(shè)計比較簡單,其程序如下所示:
而接收數(shù)據(jù)的DB塊,只需要定義成BYTE類型的數(shù)組,并且長度不小于39字節(jié)就可以了,對于每次從溫控儀表中讀取的數(shù)據(jù)放入到不同的DB塊中。 (4)、ASCII碼通訊結(jié)果處理 由于SR93系列溫控儀表發(fā)送回來的數(shù)據(jù)都是將實際的16位數(shù)據(jù)轉(zhuǎn)換成4位ASCII碼傳輸過來的,如實際數(shù)據(jù)為42(十六進制:002AH),則在DB塊中得到的數(shù)據(jù)為30H,30H,32H,41H,而且高數(shù)據(jù)位在DB塊的低地址上,因此為了便于上位機的顯示就需要對此數(shù)據(jù)進行轉(zhuǎn)換,其中最高一位的處理方法如下所示,其他位的轉(zhuǎn)換方法與此類似,僅是左移位數(shù)不同:
4、 結(jié)束語 通過使用點到點串行通訊模塊CP340與SR93系列溫控儀表通過RS485網(wǎng)絡(luò)以ASCII碼方式進行通訊,讀取儀表中溫度測量值、設(shè)定值等,同時可以通過PLC進行遠程設(shè)置溫控儀表中的數(shù)據(jù),極大方便了現(xiàn)場的控制和操作。由此看來,利用CP340通訊模塊和ASCII碼通訊協(xié)議來解決Siemens PLC與第三方智能控制儀表之間的通訊是一個值得推廣的方式,在實際的控制系統(tǒng)中,一定會取得更加成功的應(yīng)用。 參考文獻: 【1】 Simatic CP340 Point to Point Communication Installation and Parameter Assignment Manual,Siemens A&D Company,2004-04,Edition 4 【2】 SR90 Series Digital Controller Communication Interface (RS232C/RS-485) Instruction Manual,SHIMADEN CO.,LTD.,DEC.2001 【3】 SR90 Series (SR91,SR92,SR93,SR94) Digital Controller Instruction Manual,SHIMADEN CO.,LTD.,DEC.2001 作者簡介:翁根
提交
PLC一體機之EK溫度修正使用技巧
S7-300CPU存儲器介紹及存儲卡使用
0.05級超高精度互感器
DC-DC轉(zhuǎn)換器(電源模塊)應(yīng)用指南——外接濾波電容選配
施羅德最小流量閥的應(yīng)用范圍及優(yōu)點