參考價(jià): | 面議 |
- 產(chǎn)品型號(hào)
- 品牌
- 代理商 廠商性質(zhì)
- 上海市 所在地
訪問(wèn)次數(shù):384更新時(shí)間:2017-06-23 16:33:18
AFB1224SHE
填寫警消息的內(nèi)容時(shí)請(qǐng)注意,如果你不想搞的太麻煩,請(qǐng)只填寫區(qū)域指針為D0.0,D1.0,D2.0等這樣的D開(kāi)頭的位:
(4) LC程序的設(shè)計(jì)。當(dāng)警發(fā)生時(shí),在FX的程序中傳送常數(shù)1到D0,即可顯示*條警消息,傳送常數(shù)1到D1,即可顯示第二條警消息,在用戶執(zhí)行警確認(rèn)時(shí),請(qǐng)記得傳送0到D0,D1,……..等。
如果組態(tài)的警消息很多很多,請(qǐng)按本節(jié)辦法操作。
roool中的設(shè)置一樣,只是在LC中驅(qū)動(dòng)D的方式有所不同,在上面的例子中,筆者了16位的D作區(qū)域指針,而實(shí)際上只驅(qū)動(dòng)了D的低位,這樣每一個(gè)D就有15個(gè)位被浪費(fèi),要把這15個(gè)位也利用起來(lái),你需要注意:
在程序中給D傳送常數(shù)時(shí),不僅僅只傳送1,AFB1224SHE而要使16位D的每一位都有機(jī)會(huì)被置1,在圖5中域指針?lè)謩e是D0的0到13位。比如要顯示第二條警消息,你需要將D0的第二位置1,而其他位置0;
要顯示第三條警消息,你需要將D0的第二位置2,而其他位置0;
要顯示第四條警消息,你需要將D0的第三位置1,而其他位置0;
要顯示第五條警消息,你需要將D0的第四位置1,而其他位置0;
按照二進(jìn)制的規(guī)則,將數(shù)據(jù)寄存器的每位依次序置1時(shí),對(duì)應(yīng)的十進(jìn)制數(shù)分別為(這里用十進(jìn)制目的在與方便記憶和理解):
第0位置1時(shí)(0000 0000 0000 0001),對(duì)應(yīng)十進(jìn)制的1,第1位置1時(shí)(0000 0000 0000 0010),對(duì)應(yīng)十進(jìn)制的2,第3位置1時(shí)(0000 0000 0000 0100),對(duì)應(yīng)十進(jìn)制的4,第4位置1時(shí)(0000 0000 0000 1000),對(duì)應(yīng)十進(jìn)制的8,依秩類推;在LC程序中,傳送十進(jìn)制數(shù)1到D0,則顯示*條警消息;傳送十進(jìn)制數(shù)2到D0,則顯示第二條警消息;傳送十進(jìn)制數(shù)4到D0,則顯示第三條警消息;傳送十進(jìn)制數(shù)8到D0,則顯示第四條警消息;依秩類推。
這里組態(tài)了十四條警消息,對(duì)應(yīng)的區(qū)在下面的LC程序中(圖7),使用X0到X3作為警的觸發(fā)條件,使用ANS警指令實(shí)現(xiàn)S900到S903這四位的驅(qū)動(dòng),通過(guò)分別傳送1,2,4,8實(shí)現(xiàn)*,二,三,四條警消息的顯示:
圖7 LC梯形圖
在下面的程序中,通過(guò)M1的接通來(lái)執(zhí)行警位,注意,需要同時(shí)執(zhí)行ANR和傳送0到D0:
如果使用了多個(gè)D作警消息的區(qū)域指針,您需要多點(diǎn)傳送0到所有的作為區(qū)域指針的D中(下面的程序以5點(diǎn)為例):
西門子的SIMAIC CS7系統(tǒng)使用rofibus實(shí)現(xiàn)控制器和現(xiàn)場(chǎng)設(shè)備之間的通訊。由于ROFIBUS是系統(tǒng)固有的,就可以很容易的為ABB ACS800中讀取.GSD文件到CS7工作站中,同樣,也可以很容易的從物理上連接來(lái)自控制器的ROFIBUS網(wǎng)絡(luò)。這個(gè)GSD文件,包括專門的設(shè)備定義,以及允許ROFIBUS控制軟件(在這里是CS7)配置設(shè)備的參數(shù)。我們可以從ABB或者ROFIBUS的上下載到這個(gè)文件。一旦下載了這個(gè)文件并且把它安裝在CS7系統(tǒng)上,ABB驅(qū)動(dòng)可以和其他ROFIBUS從屬設(shè)備一樣,使用CS7的硬件配置工具進(jìn)行配置。使用這個(gè)工具,驅(qū)動(dòng)器可以從硬件菜單里通過(guò)拖放聯(lián)入ROFIBUS控制網(wǎng)絡(luò),這時(shí),它可以被賦于參數(shù)
3 結(jié)束語(yǔ)
通過(guò)上面的操作,已經(jīng)順利的完成了警消息的組態(tài),合理的開(kāi)發(fā)系列觸摸屏的功能,可以使它在連接其它非西門子LC時(shí),也能發(fā)揮強(qiáng)大的功能。
Modbus通訊協(xié)議分為RU協(xié)議和ASCII協(xié)議,我公司的多種儀表都采用ModBus RU通訊協(xié)議,如:C2000智能電力監(jiān)測(cè)儀、C2000M電力參數(shù)采集模塊、巡檢表、數(shù)顯表、光柱數(shù)顯表等。下面就ModBus RU協(xié)議簡(jiǎn)要介紹如下:
一、通訊協(xié)議
(一)、通訊傳送方式:
通訊傳送分為獨(dú)立的信息頭,和發(fā)送的編碼數(shù)據(jù)。以下的通訊傳送方式定義也與Modbus RU通訊規(guī)約相兼容:
編 碼 8位二進(jìn)制
起始位 1位
數(shù)據(jù)位 8位
奇偶校驗(yàn)位 1位(偶校驗(yàn)位)
停止位 1位
錯(cuò)誤校檢 CRC(冗余循環(huán)碼)
初始結(jié)構(gòu) = ≥4字節(jié)的時(shí)間
地址碼 = 1 字節(jié)
功能碼 = 1 字節(jié)
數(shù)據(jù)區(qū) = N 字節(jié)
錯(cuò)誤校檢 = 16位CRC碼
結(jié)束結(jié)構(gòu) = ≥4字節(jié)的時(shí)間
地址碼:地址碼為通訊傳送的*個(gè)字節(jié)。這個(gè)字節(jié)表明由用戶設(shè)定地址碼的從機(jī)將接收由主機(jī)發(fā)送來(lái)的信息。并且每個(gè)從機(jī)都有具有*的地址碼,并且響應(yīng)回送均以各自的地址碼開(kāi)始。主機(jī)發(fā)送的地址碼表明將發(fā)送到的從機(jī)地址,而從機(jī)發(fā)送的地址碼表明回送的從機(jī)地址。
功能碼:通訊傳送的第二個(gè)字節(jié)。Modbus通訊規(guī)約定義功能號(hào)為1到127。本儀表只利用其中的一部分功能碼。作為主機(jī)請(qǐng)求發(fā)送,通過(guò)功能碼告訴從機(jī)執(zhí)行什么動(dòng)作。作為從機(jī)響應(yīng),從機(jī)發(fā)送的功能碼與從主機(jī)發(fā)送來(lái)的功能碼一樣,并表明從機(jī)已響應(yīng)主機(jī)進(jìn)行操作。如果從機(jī)發(fā)送的功能碼的高位為1(比如功能碼大與此同時(shí)127),則表明從機(jī)沒(méi)有響應(yīng)操作或發(fā)送出錯(cuò)。
數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)是根據(jù)不同的功能碼而不同。數(shù)據(jù)區(qū)可以是實(shí)際數(shù)值、設(shè)置點(diǎn)、主機(jī)發(fā)送給從機(jī)或從機(jī)發(fā)送給主機(jī)的地址。
CRC碼:二字節(jié)的錯(cuò)誤檢測(cè)碼。
(二)、通訊規(guī)約:
當(dāng)通訊命令發(fā)送至儀器時(shí),符合相應(yīng)地址碼的設(shè)備接通訊命令,并除去地址碼,讀取信息,如果沒(méi)有出錯(cuò),則執(zhí)行相應(yīng)的任務(wù);然后把執(zhí)行結(jié)果返送給發(fā)送者。返送的信息中包括地址碼、執(zhí)行動(dòng)作的功能碼、執(zhí)行動(dòng)作后結(jié)果的數(shù)據(jù)以及錯(cuò)誤校驗(yàn)碼。如果出錯(cuò)就不發(fā)送任何信息。
1.信息幀結(jié)構(gòu)
地址碼 功能碼 數(shù)據(jù)區(qū) 錯(cuò)誤校驗(yàn)碼
8位 8位 N × 8位 16位
地址碼:地址碼是信息幀的*字節(jié)(8位),從0到255。這個(gè)字節(jié)表明由用戶設(shè)置地址的從機(jī)將接收由主機(jī)發(fā)送來(lái)的信息。每個(gè)從機(jī)都必須有*的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送。當(dāng)從機(jī)回送信息時(shí),相當(dāng)?shù)牡刂反a表明該信息來(lái)自于何處。
功能碼:主機(jī)發(fā)送的功能碼告訴從機(jī)執(zhí)行什么任務(wù)。表1-1列出的功能碼都有具體的含義及操作。
代碼 含義 操作
03 讀取數(shù)據(jù) 讀取當(dāng)前寄存器內(nèi)一個(gè)或多個(gè)二進(jìn)制值
06 重置單一寄存器 把設(shè)置的二進(jìn)制值寫入單一寄存器
數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含需要從機(jī)執(zhí)行什么動(dòng)作或由從機(jī)采集的返送信息。這些信息可以是數(shù)值、參考地址等等。例如,功能碼告訴從機(jī)讀取寄存器的值,則數(shù)據(jù)區(qū)必需包含要讀取寄存器的起始地址及讀取長(zhǎng)度。對(duì)于不同的從機(jī),地址和數(shù)據(jù)信息都不相同。
錯(cuò)誤校驗(yàn)碼:主機(jī)或從機(jī)可用校驗(yàn)碼進(jìn)行判別接收信息是否出錯(cuò)。有時(shí),由于電子噪聲或其它一些干擾,信息在傳輸過(guò)程中會(huì)發(fā)生細(xì)微的變化,錯(cuò)誤校驗(yàn)碼保證了主機(jī)或從機(jī)對(duì)在傳送過(guò)程中出錯(cuò)的信息不起作用。這樣增加了系統(tǒng)的安全和效率。錯(cuò)誤校驗(yàn)采用CRC-16校驗(yàn)方法。
注:信息幀的格式都基本相同:地址碼、功能碼、數(shù)據(jù)區(qū)和錯(cuò)誤校驗(yàn)碼。
2.錯(cuò)誤校驗(yàn)
冗余循環(huán)碼(CRC)包含2個(gè)字節(jié),即16位二進(jìn)制。CRC碼由發(fā)送設(shè)備計(jì)算,放置于發(fā)送信息的尾部。接收信息的設(shè)備再重新計(jì)算接收到信息的 CRC碼,比較計(jì)算得到的CRC碼是否與接收到的相符,如果兩者不相符,則表明出錯(cuò)。
CRC碼的計(jì)算方法是,先預(yù)置16位寄存器全為1。再逐步把每8位數(shù)據(jù)信息進(jìn)行處理。在進(jìn)行CRC碼計(jì)算時(shí)只用8位數(shù)據(jù)位,起始位及停止位,如有奇偶校驗(yàn)位的話也包括奇偶校驗(yàn)位,都不參與CRC碼計(jì)算。
在計(jì)算CRC碼時(shí),8位數(shù)據(jù)與寄存器的數(shù)據(jù)相異或,得到的結(jié)果向低位移一字節(jié),用0*高位。再檢查低位,如果低位為1,把寄存器的內(nèi)容與預(yù)置數(shù)相異或,如果低位為0,不進(jìn)行異或運(yùn)算。
這個(gè)過(guò)程一直重復(fù)8次。第8次移位后,下一個(gè)8位再與現(xiàn)在寄存器的內(nèi)容相相異或,這個(gè)過(guò)程與以上一樣重復(fù)8次。當(dāng)所有的數(shù)據(jù)信息處理完后,后寄存器的內(nèi)容即為CRC碼值。CRC碼中的數(shù)據(jù)發(fā)送、接收時(shí)低字節(jié)在前。
計(jì)算CRC碼的步驟為:
預(yù)置16位寄存器為十六進(jìn)制FFFF(即全為1)。稱此寄存器為CRC寄存器;
把*個(gè)8位數(shù)據(jù)與16位CRC寄存器的低位相異或,把結(jié)果放于CRC寄存器;
把寄存器的內(nèi)容右移一位(朝低位),用0*高位,檢查低位;
如果低位為0:重復(fù)第3步(再次移位); 如果低位為1:CRC寄存器與多項(xiàng)式A001(1010 0000 0000 0001)進(jìn)行異或;
重復(fù)步驟3和4,直到右移8次,這樣整個(gè)8位數(shù)據(jù)全部進(jìn)行了處理;
重復(fù)步驟2到步驟5,進(jìn)行下一個(gè)8位數(shù)據(jù)的處理;
后得到的CRC寄存器即為CRC碼。