浙大中控DCS培訓(xùn)教程-站間通訊_第1頁
浙大中控DCS培訓(xùn)教程-站間通訊_第2頁
浙大中控DCS培訓(xùn)教程-站間通訊_第3頁
浙大中控DCS培訓(xùn)教程-站間通訊_第4頁
浙大中控DCS培訓(xùn)教程-站間通訊_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、控制方案的設(shè)計(jì)控制方案的設(shè)計(jì)高級組態(tài)維護(hù)培訓(xùn)班一、編程小案例兩種方法的比較:組態(tài)中實(shí)現(xiàn):精度高程序中實(shí)現(xiàn):靈活控制站間的數(shù)據(jù)交換控制站間的數(shù)據(jù)交換 對于一個(gè)較大的系統(tǒng),往往無法做到將程序需要調(diào)用的位號集中在一個(gè)控制站中。這里,就需要進(jìn)行數(shù)據(jù)的站間調(diào)用??刂普鹃g的數(shù)據(jù)交換 為了實(shí)現(xiàn)在控制站間交換數(shù)據(jù),每個(gè)控制站開辟了一片共享數(shù)據(jù)區(qū),用以存放共享數(shù)據(jù)。數(shù)據(jù)區(qū)內(nèi)有128*4個(gè)字節(jié)描述為 LONG g_msg128 (在SCControl中數(shù)據(jù)類型為DWORD)。為了最靈活經(jīng)濟(jì)的使用這片數(shù)據(jù)區(qū),系統(tǒng)定義了一系列函數(shù)處理各種數(shù)據(jù)類型從數(shù)據(jù)區(qū)的放入和取出。通過sendmsg和getmsg執(zhí)行發(fā)送和接收工作

2、。 控制站間的數(shù)據(jù)交換 假如現(xiàn)在系統(tǒng)中有4個(gè)控制站,其中2號站需要調(diào)用1號站的一些數(shù)據(jù),那么,讓我們一起來看看實(shí)現(xiàn)數(shù)據(jù)交換的步驟控制站間的數(shù)據(jù)交換 首先,在1號站內(nèi)編制一段程序,通過程序把需要被調(diào)用的數(shù)據(jù)存放在本站點(diǎn)的數(shù)據(jù)共享區(qū)中,然后把這些共享數(shù)據(jù)發(fā)送到系統(tǒng)的過程控制網(wǎng)上。 這一次的數(shù)據(jù)發(fā)送是采用廣播式的發(fā)送,也就是不特別指明發(fā)送到哪一個(gè)控制站中。 以上為被調(diào)用數(shù)據(jù)的站點(diǎn)上進(jìn)行的操作。控制站間的數(shù)據(jù)交換 接著,在接受數(shù)據(jù)的2號控制站中我們也要編制一段程序,將指定的1號控制站發(fā)送的數(shù)據(jù)接收到本站點(diǎn)中。 接收過來的數(shù)據(jù)可以在本站點(diǎn)中任意使用??刂普鹃g的數(shù)據(jù)交換 例子:地址為2的控制站中有以下的一

3、些數(shù)據(jù)需要在地址為4的控制站中使用,這些數(shù)據(jù)分別是:地址2號控制站中氧化爐溫度TI-101,空氣流量FI-101,反應(yīng)罐液位LI-101,電機(jī)1狀態(tài)DI-101,電機(jī)2狀態(tài)DI-102,電機(jī)3狀態(tài)DI-103,電機(jī)4狀態(tài)DI-104。如何實(shí)現(xiàn)? 控制站間的數(shù)據(jù)交換 根據(jù)系統(tǒng)規(guī)定,模擬量位號在系統(tǒng)內(nèi)以2字節(jié)的半浮點(diǎn)(sfloat)數(shù)據(jù)類型存放,開關(guān)量以布爾(bool)數(shù)據(jù)類型存放。對于g_msg變量,每一個(gè)g_msg分別可以利用它的高16位和低16位存放2個(gè)半浮點(diǎn)型或整型的2字節(jié)變量;若是布爾型的數(shù)據(jù),g_msg的每一位可以存放一個(gè)布爾量,也就是每個(gè)g_msg變量可以存放32個(gè)布爾量(開關(guān)量);

4、對于像浮點(diǎn)型(float)這樣的本身就占用4個(gè)字節(jié)的變量,每個(gè)g_msg只能存放一個(gè)??刂普鹃g的數(shù)據(jù)交換 經(jīng)分析,需要發(fā)送的數(shù)據(jù)有模擬量位號3個(gè),開關(guān)量位號4個(gè)。 在這里,根據(jù)題目要求,我們使用兩個(gè)g_msg變量,其中的一個(gè)g_msg存放題目中要求的2個(gè)模擬量位號,正好占用了4個(gè)字節(jié),另一個(gè)g_msg存放題目中的另一個(gè)模擬量位號(2個(gè)字節(jié))和4個(gè)開關(guān)量(4位)。 控制站間的數(shù)據(jù)交換發(fā)送: 那么,在地址為2的控制站中,編寫一段程序,程序中,將個(gè)模擬量和個(gè)開關(guān)量分別存放在個(gè)g_msg變量中,為了方便起見,程序中使用了g_msg0和g_msg1 。然后將這兩個(gè)g_msg發(fā)送出去??刂普鹃g的數(shù)據(jù)交換

5、Setsfloat函數(shù)是向長整數(shù)中放sfloat數(shù)據(jù)的函數(shù)。 y=setsfloat(長整型數(shù)據(jù),半浮點(diǎn)數(shù)據(jù),或); 長整型數(shù)據(jù)為被寫的數(shù)據(jù)源, 半浮點(diǎn)的數(shù)據(jù)為所需存放的數(shù)據(jù), 表示在長整型數(shù)據(jù)的低位上存放數(shù)據(jù), 表示在長整型數(shù)據(jù)的高位上存放數(shù)據(jù)。 函數(shù)運(yùn)算的結(jié)果就是向長整數(shù)中放sfloat數(shù)據(jù)。控制站間的數(shù)據(jù)交換 Setbit函數(shù)是向長整數(shù)中放bool數(shù)據(jù)的函數(shù)。 y=setbit(長整型數(shù)據(jù),bool數(shù)據(jù),0、131); 長整型數(shù)據(jù)為被寫的數(shù)據(jù)源, bool數(shù)據(jù)為所需存放的數(shù)據(jù), 0、131表示在長整型數(shù)據(jù)的哪一位上存放數(shù)據(jù), 函數(shù)運(yùn)算的結(jié)果就是向長整數(shù)中放bool數(shù)據(jù)??刂普鹃g的數(shù)據(jù)交換

6、 Sendmsg為設(shè)置向其他控制站發(fā)消息的數(shù)目的函數(shù)。 sendmsg(所需發(fā)送msg的數(shù)量);控制站間的數(shù)據(jù)交換g_msg0 = 0;g_msg1 = 0;g_msg0 = setsfloat( g_msg0 , _TAG(TI-101).PV, 0); g_msg0 = setsfloat( g_msg0 , _TAG(FI-101).PV, 1); g_msg1 = setsfloat( g_msg1 , _TAG(LI-101).PV, 1); g_msg1 = setbit( g_msg1 , _TAG(DI-101).PV, 0); g_msg1 = setbit( g_msg1

7、, _TAG(DI-102).PV, 1); g_msg1 = setbit( g_msg1 , _TAG(DI-103).PV, 2); g_msg1 = setbit( g_msg1 , _TAG(DI-104).PV, 3); sendmsg(2);控制站間的數(shù)據(jù)交換 SETSFLOST模塊的功能是在輸入的32位DWORD型變量的指定位置設(shè)置16位的SFLOAT值,再賦給輸出值。其中,SFLOAT型在計(jì)算機(jī)中以定點(diǎn)法存儲,在指定位置設(shè)置后,整體以DWORD型傳送??刂普鹃g的數(shù)據(jù)交換輸入引腳X上連接了一個(gè)DWORD變量,輸入引腳SF上連接的就示需要在其他站點(diǎn)上被調(diào)用的數(shù)據(jù)位號,輸入引腳SE

8、RIAL上連接的數(shù)字表示該半浮點(diǎn)位號在雙字的g_msg變量中存放的位置序號(0表示放在低16位,1表示放在高16位)。將所需的數(shù)據(jù)存儲在DWORD變量指定位置后,將數(shù)值改變后的DWORD變量從輸出引腳Y輸出。 SETBIT模塊的功能與前面的模塊類似,是在輸入的DWORD型值的指定位置設(shè)置開關(guān)數(shù)據(jù),再賦給輸出值。也就是,在已存在的DWORD型值的某一位上設(shè)置開關(guān)數(shù)據(jù),其余不變,然后輸出。控制站間的數(shù)據(jù)交換輸入引腳X上連接了一個(gè)DWORD變量,輸入引腳Q上連接的就示需要在其他站點(diǎn)上被調(diào)用的數(shù)據(jù)位號,輸入引腳SERIAL上連接的數(shù)字表示該布爾型位號在雙字的g_msg變量中存放的位置序號(0表示放在最

9、低位,31表示放在最高位)。將所需的數(shù)據(jù)存儲在DWORD變量指定位置后,將數(shù)值改變后的DWORD變量從輸出引腳Y輸出。SENDMSG模塊的功能是通知發(fā)送消息的個(gè)數(shù)。SIZE定義消息的個(gè)數(shù),消息內(nèi)容放在g_msg中??刂普鹃g的數(shù)據(jù)交換控制站間的數(shù)據(jù)交換接收: 接著我們需要在接受數(shù)據(jù)的站點(diǎn)地址4號控制站編寫接受數(shù)據(jù)的程序。本站點(diǎn)需要接受的數(shù)據(jù)就是地址2號控制站發(fā)送出來的兩個(gè)g_msg變量g_msg0和g_msg1 。 控制站間的數(shù)據(jù)交換Getmsg為從其他控制站取消息的函數(shù)。y = getmsg(控制站地址,所接收的msg號);控制站間的數(shù)據(jù)交換 Getsfloat為從長整數(shù)中取半浮點(diǎn)數(shù)的函數(shù)。

10、y= getsfloat(長整型數(shù)據(jù), 或); 長整型數(shù)據(jù)為取數(shù)據(jù)的數(shù)據(jù)源,一般的,就是我們從其它控制站中取來的數(shù)據(jù)。 表示從長整型數(shù)據(jù)的低位上取數(shù)據(jù), 表示從長整型數(shù)據(jù)的高位上取數(shù)據(jù)。 控制站間的數(shù)據(jù)交換 Getbit函數(shù)是從長整數(shù)中取BOOL數(shù)據(jù)的函數(shù)。 y=getbit(長整型數(shù)據(jù), 0、131); 長整型數(shù)據(jù)為取數(shù)據(jù)的數(shù)據(jù)源,一般的,就是我們從其它控制站中取來的數(shù)據(jù), 0、131表示從長整型數(shù)據(jù)的哪一位上取數(shù)據(jù)??刂普鹃g的數(shù)據(jù)交換 long msg0,msg1;sfloat TI101,FI101,LI101;bool DI101,DI102,DI103,DI104;msg0=getm

11、sg(2,0);msg1=getmsg(2,1);TI101=getsfloat(msg0,0);FI101=getsfloat(msg0,1);LI101=getsfloat(msg1,1);DI101=getbit(msg1,0);DI102=getbit(msg1,1);DI103=getbit(msg1,2);DI104=getbit(msg1,3);控制站間的數(shù)據(jù)交換GETMSG模塊的功能是從其他控制站取傳送過來的消息。STATION引腳為控制站號,填寫控制站的地址。SERIAL引腳為消息序號,填寫所接受的msg序號。MSG引腳輸出的是接受到的消息??刂普鹃g的數(shù)據(jù)交換 GETSFLOST模塊的功能是從輸入的32位DWORD型值的指定位置取16位的SFLOAT型值。其中,在計(jì)算機(jī)中,SFLOAT型用定點(diǎn)表示法表示。SERIAL=0,取低16位;SERIAL=1,取高16位。 控制站間的數(shù)據(jù)交換輸入引腳X上連接了一個(gè)DWORD變量,即為取數(shù)據(jù)的數(shù)據(jù)源。輸入引腳SERIAL上連接的數(shù)字表示從雙字的變量中取半浮點(diǎn)數(shù)的位置序號(0表示從低16位取數(shù),1表示從高16位取數(shù))。取出的半浮點(diǎn)數(shù)從輸出引腳Y輸出。 GETBIT模塊的功能與前面的模塊類似,是從輸入的DWORD型值的指定位置取BOOL數(shù) ??刂普鹃g的數(shù)據(jù)交換輸入引腳X上連接了一個(gè)DWORD變量,即為取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論