版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠采購豬肉合同模板
- 寄養(yǎng)小孩合同范例
- 農(nóng)村商鋪?zhàn)赓U合同范例
- 南開區(qū)?;愤\(yùn)輸合同范例
- 律所加盟協(xié)議合同范例
- 委外投資合同范例
- 工作服采購合同范例
- 彩電安裝合同模板
- 定制拆單合同模板
- 專業(yè)分包合同范例
- 2024北京市租房合同自行成交版下載
- 慶祝第75個(gè)國慶節(jié)共筑中國夢大國華誕繁盛共享課件
- 2024年江西省高考化學(xué)試卷(真題+答案)
- 人教版小學(xué)語文一年級單元測試題-全冊
- 2024-2030年中國拍賣行業(yè)市場深度調(diào)研及競爭格局與投資研究報(bào)告
- 2024秋人教版一年級數(shù)學(xué)上冊《11-20的認(rèn)識》教學(xué)設(shè)計(jì)
- 油漆作業(yè)風(fēng)險(xiǎn)和隱患辨識、評估分級與控制措施一覽表
- 空氣栓塞培訓(xùn)課件
- 數(shù)據(jù)治理與數(shù)據(jù)中臺建設(shè)方案
- HG∕T 5248-2017 風(fēng)力發(fā)電機(jī)組葉片用環(huán)氧結(jié)構(gòu)膠粘劑
- 醫(yī)院感染監(jiān)測標(biāo)準(zhǔn)考試試題附有答案
評論
0/150
提交評論