版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
控制技術(shù)項(xiàng)目之泵站監(jiān)控系統(tǒng)第1頁/共121頁2項(xiàng)目六泵站監(jiān)控系統(tǒng)6.1項(xiàng)目背景及要求6.2知識(shí)講座(S7-200PLC通訊)6.3技能訓(xùn)練(PLC通訊模式的建構(gòu))6.4項(xiàng)目設(shè)計(jì)方案6.5技術(shù)答疑第2頁/共121頁3泵站監(jiān)控系統(tǒng)泵站監(jiān)控系統(tǒng)是先進(jìn)的計(jì)算機(jī)監(jiān)控系統(tǒng),它對(duì)各類泵站、泵組可以實(shí)現(xiàn)無人值守、少人看管、優(yōu)化調(diào)度,因此為提高泵站運(yùn)行效率和管理水平提供了可靠的設(shè)備和保障。本項(xiàng)目系統(tǒng)采用PLC作為現(xiàn)場(chǎng)控制設(shè)備,通過計(jì)算機(jī)對(duì)PLC進(jìn)行現(xiàn)場(chǎng)實(shí)時(shí)監(jiān)控。項(xiàng)目六泵站監(jiān)控系統(tǒng)第3頁/共121頁4泵站監(jiān)控系統(tǒng)項(xiàng)目的學(xué)習(xí)目標(biāo)如下:知識(shí)目標(biāo):了解小型PLC的基本配置和通信系統(tǒng);熟悉S7-200PLC的各類通訊方式;掌握PPI、自由口和Modbus通訊協(xié)議。技能目標(biāo):能通過PPI協(xié)議對(duì)兩臺(tái)及以上S7-200進(jìn)行通訊接線、編程與調(diào)試;能通過自由口協(xié)議對(duì)PLC間的通訊進(jìn)行編程;能通過Modbus協(xié)議對(duì)S7-200主站和從站進(jìn)行接線、編程和調(diào)試;能通過VisualBasic編程調(diào)用MSCOMM控件進(jìn)行自由口監(jiān)控。職業(yè)素養(yǎng)目標(biāo):根據(jù)小型項(xiàng)目,能制定切合工程實(shí)際的監(jiān)控系統(tǒng),兼顧現(xiàn)實(shí)性和前瞻性,突出開放性和靈活性。項(xiàng)目六泵站監(jiān)控系統(tǒng)第4頁/共121頁56.1.1 項(xiàng)目背景1、實(shí)時(shí)采集水位、出水量等重要參數(shù),實(shí)時(shí)將數(shù)據(jù)傳送到監(jiān)控中心。2、計(jì)算機(jī)中心可隨時(shí)查看每個(gè)泵站的情況。3、計(jì)算機(jī)中心保存所有泵站的歷史數(shù)據(jù),自動(dòng)形成分析曲線、自動(dòng)生成報(bào)表4、其他常規(guī)測(cè)控功能強(qiáng)大。如可以遠(yuǎn)程控制水泵的啟停;測(cè)量水泵電機(jī)各種參數(shù);給水泵電機(jī)、欠壓、過壓、缺相、過流、欠載后可自動(dòng)遠(yuǎn)程報(bào)警等等。項(xiàng)目六泵站監(jiān)控系統(tǒng)第5頁/共121頁66.1.2 泵站監(jiān)控要求根據(jù)圖6.1所示,該泵站監(jiān)控工作情況和要求如下:(1)該泵站現(xiàn)在需要對(duì)8臺(tái)泵的運(yùn)行與故障進(jìn)行監(jiān)控,每臺(tái)運(yùn)行泵2個(gè)輸入信號(hào)(即運(yùn)行與故障),每臺(tái)備用泵1個(gè)輸入信號(hào)(運(yùn)行信號(hào)),共計(jì)14個(gè)點(diǎn);(2)能在計(jì)算機(jī)上進(jìn)行監(jiān)控顯示14個(gè)點(diǎn)的情況。項(xiàng)目六泵站監(jiān)控系統(tǒng)第6頁/共121頁76.2知識(shí)講座:S7-200PLC通訊項(xiàng)目六泵站監(jiān)控系統(tǒng)第7頁/共121頁86.2.1 小型PLC的基本配置小型PLC區(qū)別于中大型PLC的主要區(qū)別在于前者無集成式總線背板,模塊間的組成主要通過扁平線一級(jí)一級(jí)串接起來(如圖6.2所示)。這種連接方式最大的特點(diǎn)在于降低成本、提高抗環(huán)境能力、安裝要求低,對(duì)于輸入輸出點(diǎn)數(shù)不高的自動(dòng)化控制系統(tǒng)非常適合。項(xiàng)目六泵站監(jiān)控系統(tǒng)第8頁/共121頁91、系統(tǒng)配置原理分析主機(jī)模塊包括CPU、輸入、輸出、工作電源和通訊口,其功能如下:(1)CPU:主要負(fù)責(zé)信號(hào)處理、用戶程序存儲(chǔ)、數(shù)據(jù)存儲(chǔ)和用戶程序執(zhí)行等功能。(2)輸入:外部設(shè)備的輸入信號(hào)或數(shù)據(jù)被轉(zhuǎn)換為可處理的形式,然后輸入到主機(jī)。(3)輸出:把CPU發(fā)出的輸出信號(hào)轉(zhuǎn)換為能夠驅(qū)動(dòng)外部設(shè)備的信號(hào)。(4)工作電源:把外部電源轉(zhuǎn)換為PLC系統(tǒng)內(nèi)部供應(yīng)電源,該外部電源可以是交流220V也可以是直流24V,具體根據(jù)不同的PLC機(jī)型而定。(5)通訊口:給其它系統(tǒng)或提供數(shù)據(jù)交換功能,如編程軟件、組態(tài)軟件、其他PLC系統(tǒng)等。項(xiàng)目六泵站監(jiān)控系統(tǒng)第9頁/共121頁10項(xiàng)目六泵站監(jiān)控系統(tǒng)第10頁/共121頁116.2.2 小型PLC通訊系統(tǒng)1:1通訊系統(tǒng)通常有以下三種建構(gòu)方式:(1)通過小型PLC的內(nèi)置通信口1或者2與上位機(jī)(計(jì)算機(jī)或工控機(jī)、觸摸屏或文本操作器)外部設(shè)備之間進(jìn)行1:1通信,如圖6.4所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第11頁/共121頁12(2)通過內(nèi)置通信口在主機(jī)與外部設(shè)備(監(jiān)控系統(tǒng))之間進(jìn)行1:1通信,如圖6.5所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第12頁/共121頁13(3)通過通訊模塊和modem,進(jìn)行遠(yuǎn)距離的RS-232C通信。設(shè)備之間進(jìn)行1:1通信,如圖6.6所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第13頁/共121頁142、1:N通訊系統(tǒng)所謂1:N通訊系統(tǒng)就是一個(gè)上位機(jī)能夠于N臺(tái)主機(jī)進(jìn)行通訊,根據(jù)協(xié)議的不同,N取值會(huì)不盡相同,一般而言,RS485系統(tǒng)多采用N最大為32。該通訊方式共有2種構(gòu)建形式,即利用擴(kuò)展的通訊模塊(如圖6.7a)或者利用小型PLC內(nèi)置的RS485通訊口(如圖6.7b)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第14頁/共121頁15項(xiàng)目六泵站監(jiān)控系統(tǒng)第15頁/共121頁166.2.3 S7-200PLC的通訊方式西門子S7-200PLC之間或者PLC與PC之間通信有很多種方式:自由口,PPI方式,MPI方式,Profibus方式,其中前三者屬于典型的1:1或1:N通訊系統(tǒng),而ProfiBus-DP則是S7-200具有最為簡(jiǎn)潔的一種總線配置系統(tǒng)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第16頁/共121頁17通過EM277ProfiBus-DP擴(kuò)展從站模塊,可將S7-200CPU連接到ProfiBus-DP網(wǎng)絡(luò),該端口可以運(yùn)行于9600波特率和12M波特率之間的任何速率。圖6.8所示為S7-200CPU的總線配置概況。項(xiàng)目六泵站監(jiān)控系統(tǒng)第17頁/共121頁182、S7-200PLC的通訊端口硬件圖6.9所示為S7-200PLC的通訊端口硬件(PORT0或PORT1),其硬件結(jié)構(gòu)為RS485,為了確保實(shí)現(xiàn)1:1或1:N系統(tǒng),通常要進(jìn)行通訊端口的連接。圖6.10所示為1:N系統(tǒng)時(shí)多個(gè)通訊點(diǎn)的接線方式,其中B與B、A與A相連,最首和最末端均需要串接終端電阻。項(xiàng)目六泵站監(jiān)控系統(tǒng)第18頁/共121頁19項(xiàng)目六泵站監(jiān)控系統(tǒng)第19頁/共121頁20當(dāng)然,西門子公司還提供了S7-200專用通訊連接器(如圖6.11所示),只需要將開關(guān)位置打開或關(guān)閉即可,其原則也是首尾兩端需要在“打開”位置。項(xiàng)目六泵站監(jiān)控系統(tǒng)第20頁/共121頁216.2.4 PPI通訊因?yàn)镾7-200PLC的編程口物理層為RS-485結(jié)構(gòu),因此西門子所提供STEP7-Micro/Win軟件,采用的是PPI(Point
to
Point)協(xié)議,可以用來傳輸、調(diào)試PLC程序。西門子的PPI通訊協(xié)議采用主從式的通訊方式,一次讀寫操作的步驟包括:首先上位機(jī)發(fā)出讀寫命令,PLC作出接收正確的響應(yīng),上位機(jī)接到此響應(yīng)則發(fā)出確認(rèn)申請(qǐng)命令,PLC則完成正確的讀寫響應(yīng),回應(yīng)給上位機(jī)數(shù)據(jù)。PPI協(xié)議是PLC內(nèi)部固化的通訊協(xié)議,并不對(duì)外公開其協(xié)議。如果上位機(jī)遵循PPI協(xié)議來讀寫PLC,就可以省略編寫PLC的通訊代碼。項(xiàng)目六泵站監(jiān)控系統(tǒng)第21頁/共121頁221、單臺(tái)主站PPI網(wǎng)絡(luò)圖6.12顯示兩個(gè)網(wǎng)絡(luò)范例。在第一個(gè)范例中,編程站(STEP7-Micro/WIN)是網(wǎng)絡(luò)主站。在第二個(gè)范例中,一臺(tái)人機(jī)接口(HMI)設(shè)備(例如TD、TP或OP)是網(wǎng)絡(luò)主站。項(xiàng)目六泵站監(jiān)控系統(tǒng)第22頁/共121頁232、多臺(tái)主站PPI網(wǎng)絡(luò)圖6.13顯示配備一臺(tái)從站的多臺(tái)主站網(wǎng)絡(luò)范例。編程站(STEP7-Micro/WIN)使用CP卡或PC/PPI電纜,STEP7-Micro/WIN和HMI設(shè)備共享設(shè)備。STEP7-Micro/WIN和HMI設(shè)備均為主站,必須具有不同的網(wǎng)絡(luò)地址,而S7-200CPU是從站
項(xiàng)目六泵站監(jiān)控系統(tǒng)第23頁/共121頁243、復(fù)雜的PPI網(wǎng)絡(luò)圖6.14顯示使用具有對(duì)等通訊功能的多臺(tái)主站的網(wǎng)絡(luò)范例。STEP7-Micro/WIN和HMI設(shè)備在網(wǎng)絡(luò)上從S7-200CPU讀取數(shù)據(jù)和向S7-200CPU寫入數(shù)據(jù),S7-200CPU使用“網(wǎng)絡(luò)讀取”(NETR)和“網(wǎng)絡(luò)寫入”(NETW)指令相互讀取和寫入數(shù)據(jù)(點(diǎn)到點(diǎn)通訊)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第24頁/共121頁25圖6.15顯示另一個(gè)復(fù)雜PPI網(wǎng)絡(luò)的范例,該網(wǎng)絡(luò)使用具有點(diǎn)到點(diǎn)通訊功能的多臺(tái)主站。在該范例中,每臺(tái)HMI監(jiān)管一臺(tái)S7-200CPU。S7-200CPU使用NETR和NETW命令相互讀取和寫入數(shù)據(jù)(對(duì)等通訊)。對(duì)于該網(wǎng)絡(luò),將STEP7-Micro/WIN配置為使用PPI協(xié)議,并啟用多臺(tái)主站驅(qū)動(dòng)程序。PPI高級(jí)協(xié)議是最佳選擇。項(xiàng)目六泵站監(jiān)控系統(tǒng)第25頁/共121頁266.2.5 自由口模式在現(xiàn)場(chǎng)應(yīng)用中,當(dāng)需要PLC與上位機(jī)通訊時(shí),較多的使用自定義協(xié)議與上位機(jī)通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,利用中斷方式控制通訊端口的數(shù)據(jù)收發(fā)。當(dāng)PLC的通訊口定義為自由通訊口時(shí),PLC的編程軟件無法對(duì)PLC進(jìn)行監(jiān)控。自由接口模式允許程序控制S7-200CPU的通訊端口。用戶可以使用自由接口模式使用戶定義通訊協(xié)議與多種智能設(shè)備通訊。自由接口模式支持ASCII和二進(jìn)制協(xié)議。欲啟用自由接口模式,可使用特殊內(nèi)存字節(jié)SMB30(用于0號(hào)端口)和SMB130(用于1號(hào)端口)。用戶可以從SMB30和SMB130讀取或向SMB30和SMB130寫入。這些字節(jié)配置各自的通訊端口,進(jìn)行自由口操作,并提供自由口或系統(tǒng)協(xié)議支持選擇,如表6.1所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第26頁/共121頁27項(xiàng)目六泵站監(jiān)控系統(tǒng)第27頁/共121頁28用戶程序使用以下功能控制通訊端口的操作:A、傳送指令(XMT)和傳送中斷:“傳送”指令允許S7-200CPU從COM端口最多傳送255個(gè)字符。傳送完成時(shí),傳送中斷向S7-200中的程序發(fā)出通知。B、接收字符中斷:接收字符中斷通知用戶程序在COM端口中收到一個(gè)字符。程序則可根據(jù)正在執(zhí)行的協(xié)議處理該字符。C、接收指令(RCV):“接收”指令從COM端口接收整條信息,完全收到信息后,為用戶程序生成中斷。您使用S7-200的SM內(nèi)存配置“接收”指令,根據(jù)定義的條件開始和停止信息接收。“接收”指令允許程序根據(jù)具體字符或時(shí)間間隙開始或停止信息。大多數(shù)協(xié)議可用“接收”指令執(zhí)行。項(xiàng)目六泵站監(jiān)控系統(tǒng)第28頁/共121頁291、XMT和RCV指令自由口模式是一種可以用戶自定義的通訊模式,它允許應(yīng)用程序控制S7-200的通信端口,來實(shí)現(xiàn)一些特定的功能。借助自由口通信模式,S7-200可以與許多通信協(xié)議公開的設(shè)備、控制器等進(jìn)行通信,其波特率為1200~115200bit/s。在自由口通訊中,XMT和RCV指令是最常見的(如圖6.16)。傳送(XMT)指令在自由端口模式中使用,通過通訊端口傳送數(shù)據(jù)。接收(RCV)指令開始或終止"接收信息"服務(wù)。用戶必須指定一個(gè)開始條件和一個(gè)結(jié)束條件,"接收"方框才能操作。通過指定端口(PORT)接收的信息存儲(chǔ)在數(shù)據(jù)緩沖區(qū)(TBL)中。數(shù)據(jù)緩沖區(qū)中的第一個(gè)條目指定接收的字節(jié)數(shù)目。項(xiàng)目六泵站監(jiān)控系統(tǒng)第29頁/共121頁30(1)傳送數(shù)據(jù)傳送"指令允許傳送一個(gè)或多個(gè)字符的緩沖區(qū),最多可達(dá)255個(gè)字符。圖6.17顯示"傳送"緩沖區(qū)的格式。項(xiàng)目六泵站監(jiān)控系統(tǒng)第30頁/共121頁31(2)接收數(shù)據(jù)"接收"指令允許接收一個(gè)或多個(gè)字符的緩沖區(qū),最多可達(dá)255個(gè)字符。圖6.18顯示"接收"緩沖區(qū)的格式。項(xiàng)目六泵站監(jiān)控系統(tǒng)第31頁/共121頁322、接收信息控制SMB86至SMB94以及SMB186至SMB194被用于控制和讀取有關(guān)“接收信息”指令的狀態(tài),具體如表6.2和表6.3所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第32頁/共121頁333、"接收"指令支持的幾種開始條件(1)空閑行檢測(cè)空閑行條件被定義為傳輸行中的靜態(tài)或空閑時(shí)間。當(dāng)通訊行處于靜態(tài)或空閑達(dá)到SMW90或SMW190中指定的毫秒數(shù)時(shí),開始接收。執(zhí)行程序中的"接收"指令時(shí),接收信息功能開始搜索空閑行條件。如果在空閑行時(shí)間失效之前收到任何字符,接收信息功能會(huì)忽略這些字符,用來自SMW90或SMW190的時(shí)間重新啟動(dòng)空閑行計(jì)時(shí)器(如圖6.19)??臻e行時(shí)間失效后,接收信息功能存儲(chǔ)在信息緩沖區(qū)中隨后接收的所有字符。按照指定的波特率,空閑行時(shí)間應(yīng)當(dāng)始終大于傳輸一個(gè)字符(起始位、數(shù)據(jù)位、校驗(yàn)和停止位)的時(shí)間。按照指定的波特率,空閑行時(shí)間的典型數(shù)值是三個(gè)字符時(shí)間。用戶將空閑行檢測(cè)用作沒有特定起始字符或指定信息間最小時(shí)間的二進(jìn)制協(xié)議的開始條件。設(shè)置: il=1,sc=0,bk=0,SMW90/SMW190=空閑行超時(shí)(以毫秒為單位)(注:il、sc、bk等均為SMB87和SMB187中的數(shù)據(jù)位,可以參看表6.3和6.4)項(xiàng)目六泵站監(jiān)控系統(tǒng)第33頁/共121頁34(2)起始字符檢測(cè)起始字符是任何被用作信息第一個(gè)字符的字符。當(dāng)收到在SMB88或SMB188中指定的起始字符時(shí),信息開始。接收信息功能在接收緩沖區(qū)中將起始字符存儲(chǔ)為信息的第一個(gè)字符。接收信息功能忽略在起始字符之前接收的任何字符。起始字符和在起始字符之后接收的所有字符存儲(chǔ)在信息緩沖區(qū)中。通常,在ASCII協(xié)議中使用起始字符檢測(cè),在ASCII協(xié)議中,所有的信息以相同的字符開始。設(shè)置: il=0,sc=1,bk=0,SMW90/SMW190=無關(guān)緊要,SMB88/SMB188=起始字符項(xiàng)目六泵站監(jiān)控系統(tǒng)第34頁/共121頁353)空閑行和起始字符"接收"指令可以空閑行和起始字符組合開始一則信息。執(zhí)行"接收"指令時(shí),接收信息功能搜索空閑行條件。找到空閑行條件后,接收信息功能尋找指定的起始字符。如果收到起始字符之外的任何字符,接收功能重新開始搜索空閑行條件??臻e行條件之前接收的所有字符均符合條件,起始字符之前接收的所有字符均被忽略。起始字符與所有其后的字符均被放置在信息緩沖區(qū)中。按照指定的波特率,空閑行時(shí)間應(yīng)當(dāng)始終大于傳輸一個(gè)字符(起始位、數(shù)據(jù)位、校驗(yàn)和停止位)的時(shí)間。按照指定的波特率,空閑行時(shí)間的典型數(shù)值是三個(gè)字符時(shí)間。通常,當(dāng)存在指定信息間最小時(shí)間的協(xié)議且信息的第一個(gè)字符是地址或指定某一特定設(shè)備的符號(hào)時(shí),則使用此類起始條件。這在實(shí)施通訊鏈接上有多臺(tái)設(shè)備的協(xié)議時(shí)十分有用。在此種情況下,只有在接收具體地址或由起始字符指定的設(shè)備時(shí)"接收"指令才觸發(fā)中斷。設(shè)置: il=1,sc=1,bk=0,SMW90/SMW190>0,SMB88/SMB188=起始字符項(xiàng)目六泵站監(jiān)控系統(tǒng)第35頁/共121頁36(4)斷開檢測(cè)當(dāng)接收的數(shù)據(jù)保持在零的時(shí)間大于一個(gè)整字符傳輸時(shí)間時(shí),會(huì)指示斷開。一個(gè)整字符傳輸時(shí)間被定義為起始、數(shù)據(jù)、校驗(yàn)和停止位的總時(shí)間。如果"接收"指令被配置為在接收斷開條件時(shí)起始信息,在斷開條件之后接收的任何字符均放置在信息緩沖區(qū)中。在斷開條件之前接收的任何字符均被忽略。通常,僅在協(xié)議要求時(shí)才將"斷開"檢測(cè)用作起始條件。設(shè)置: il=0,sc=0,bk=1,SMW90/SMW190=無關(guān)緊要,SMB88/SMB188=無關(guān)緊要項(xiàng)目六泵站監(jiān)控系統(tǒng)第36頁/共121頁37(5)斷開和起始字符"接收"指令可以被配置為在接收斷開條件且隨之接收一個(gè)具體起始字符后開始接收字符。在斷開條件后,接收信息功能尋找指定的起始字符。如果收到起始字符之外的任何字符,接收功能重新開始搜索斷開條件。斷開條件之前接收的所有字符均符合條件,起始字符之前接收的所有字符均被忽略。起始字符與所有其后的字符均被放置在信息緩沖區(qū)中。設(shè)置: il=0,sc=1,bk=1,SMW90/SMW190=無關(guān)緊要,SMB88/SMB188=起始字符項(xiàng)目六泵站監(jiān)控系統(tǒng)第37頁/共121頁38(6)任何字符"接收"指令可以被配置為立即開始接收任何和所有的字符,并將字符放置在信息緩沖區(qū)中。此為空閑行檢測(cè)的特殊情況。在此種情況下,空閑行時(shí)間(SMW90或SMW190)被設(shè)為零。這樣會(huì)強(qiáng)制"接收"指令在執(zhí)行時(shí)立即開始接收字符。設(shè)置: il=1,sc=0,bk=0,SMW90/SMW190=0,SMB88/SMB188=無關(guān)緊要在接收任何字符時(shí)開始信息允許信息計(jì)時(shí)器被用于使信息接收超時(shí)。這在使用自由端口實(shí)施協(xié)議的主設(shè)備或主機(jī)部分時(shí)十分有用,此時(shí)如果在指定的時(shí)間內(nèi)未從從屬設(shè)備收到應(yīng)答,則有必要超時(shí)。當(dāng)"接收"指令執(zhí)行時(shí),信息計(jì)時(shí)器會(huì)啟動(dòng),因?yàn)榭臻e行時(shí)間被設(shè)為零。如果未滿足其他結(jié)束條件,信息計(jì)時(shí)器會(huì)超時(shí)并終止接收。設(shè)置: il=1,sc=0,bk=0,SMW90/SMW190=0,SMB88/SMB188=無關(guān)緊要c/m=1,tmr=1,SMW92=信息超時(shí)(以毫秒為單位)項(xiàng)目六泵站監(jiān)控系統(tǒng)第38頁/共121頁394、"接收"指令支持終止信息的幾種方法(1)結(jié)束字符檢測(cè)結(jié)束字符是被用于指示信息結(jié)束的任何字符。找到起始條件后,"接收"指令會(huì)檢查接收的每個(gè)字符,查看是否與結(jié)束字符相符。收到結(jié)束字符時(shí),結(jié)束字符被置入信息緩沖區(qū)中,接收終止。通常,在ASCII協(xié)議中使用結(jié)束字符檢測(cè)??梢詫⒔Y(jié)束字符檢測(cè)與字符間計(jì)時(shí)器、信息計(jì)時(shí)器或最大字符計(jì)數(shù)組合在一起使用,終止信息。設(shè)置: ec=1,SMB89/SMB189=結(jié)束字符項(xiàng)目六泵站監(jiān)控系統(tǒng)第39頁/共121頁40(2)字符間計(jì)時(shí)器字符間時(shí)間是從一個(gè)字符的結(jié)束(停止位)到另一個(gè)字符的結(jié)束(停止位)之間的時(shí)間。如果字符間的時(shí)間(包括第二個(gè)字符)超過SMW92或SMW192中指定的毫秒數(shù),接收信息被終止。在收到每個(gè)字符時(shí),字符間計(jì)時(shí)器重新啟動(dòng)(如圖6.20所示)??梢允褂米址g計(jì)時(shí)器終止用于無具體信息字符結(jié)束的協(xié)議的信息。該計(jì)時(shí)器必須按照所選的波特率設(shè)為大于一個(gè)字符時(shí)間的數(shù)值,因?yàn)樵撚?jì)時(shí)器總是包括接收一個(gè)整字符(起始位、數(shù)據(jù)位、校驗(yàn)和停止位)的時(shí)間??梢詫⒆址g計(jì)時(shí)器與結(jié)束字符檢測(cè)和最大字符計(jì)數(shù)組合在一起使用,終止信息。設(shè)置: c/m=0,tmr=1,SMW92/SMW192=超時(shí)(以毫秒為單位)項(xiàng)目六泵站監(jiān)控系統(tǒng)第40頁/共121頁41(3)信息計(jì)時(shí)器信息計(jì)時(shí)器在信息開始后按照指定的時(shí)間終止信息。一旦符合接收信息的起始條件,信息計(jì)時(shí)器即啟動(dòng)。超過SMW92或SMW192中指定的毫秒數(shù)時(shí),信息計(jì)時(shí)器失效(如圖6.21)。通常,當(dāng)通訊設(shè)備無法保證字符間不會(huì)有時(shí)間間隔或通過調(diào)制解調(diào)器操作時(shí),您可以使用信息計(jì)時(shí)器。對(duì)于調(diào)制解調(diào)器,您可以使用信息計(jì)時(shí)器指定信息開始后允許接收信息的最長(zhǎng)時(shí)間。信息計(jì)時(shí)器的典型數(shù)值約為按照選擇的波特率接收最長(zhǎng)信息所要求時(shí)間的1.5倍。可以將信息計(jì)時(shí)器與結(jié)束字符檢測(cè)和最大字符計(jì)數(shù)組合在一起使用,終止信息。設(shè)置: c/m=1,tmr=1,SMW92/SMW192=超時(shí)(以毫秒為單位)項(xiàng)目六泵站監(jiān)控系統(tǒng)第41頁/共121頁42(4)最大字符計(jì)數(shù)必須將需要接收的最大字符數(shù)(SMB94或SMB194)通知"接收"信息。當(dāng)達(dá)到或超過該數(shù)值時(shí),接收信息被終止。"接收"指令要求用戶指定一個(gè)最大字符計(jì)數(shù),即使該計(jì)數(shù)并未專門用作終止條件亦如此。這是因?yàn)?接收"指令需要了解接收信息的最大尺寸,以防在信息緩沖區(qū)之后放置的數(shù)據(jù)被覆蓋。最大字符計(jì)數(shù)可用于為具有已知信息長(zhǎng)度且信息長(zhǎng)度始終相同的協(xié)議終止信息。最大字符計(jì)數(shù)始終與結(jié)束字符檢測(cè)、字符間計(jì)時(shí)器或信息計(jì)時(shí)器組合在一起使用。項(xiàng)目六泵站監(jiān)控系統(tǒng)第42頁/共121頁43(5)校驗(yàn)錯(cuò)誤當(dāng)硬件指示接收字符的校驗(yàn)錯(cuò)誤時(shí),“接收”指令會(huì)自動(dòng)終止。只有當(dāng)校驗(yàn)在SMB30或SMB130中被啟用時(shí),才會(huì)出現(xiàn)校驗(yàn)錯(cuò)誤。(6)用戶終止用戶程序可以執(zhí)行另一條"接收"指令,并將SMB87或SMB187中的啟用位(en)設(shè)為零,從而終止接收信息。這樣會(huì)立即終止接收信息。項(xiàng)目六泵站監(jiān)控系統(tǒng)第43頁/共121頁446.2.6 MODBUS通訊Modbus協(xié)議最初由Modicon公司開發(fā)出來,在1979年末該公司成為施耐德自動(dòng)化(SchneiderAutomation)部門的一部分,現(xiàn)在Modbus已經(jīng)是工業(yè)領(lǐng)域全球最流行的協(xié)議。此協(xié)議支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。許多工業(yè)設(shè)備,包括PLC,DCS,智能儀表等都在使用Modbus協(xié)議作為他們之間的通訊標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。項(xiàng)目六泵站監(jiān)控系統(tǒng)第44頁/共121頁452、使用Modbus協(xié)議的要求Modbus主站協(xié)議指令使用來自S7--200的下列資源:(1)初始化Modbus從站協(xié)議使特定的CPU端口專用于Modbus主站協(xié)議通訊。當(dāng)CPU端口用于Modbus主站協(xié)議通訊時(shí),它無法用于其它用途,包括與STEP7--Micro/WIN通訊。MBUS_CTRL指令控制Port0的設(shè)定是Modbus主站協(xié)議還是PPI。MBUS_CTRL_P1指令(來自端口1庫(kù))控制將端口1分配給Modbus主站協(xié)議或PPI。(2)Modbus主站協(xié)議指令影響與所使用的自由端口通訊相關(guān)的所有SM位置。(3)Modbus主站協(xié)議指令使用3個(gè)子程序和1個(gè)中斷例行程序。(4)Modbus主站協(xié)議指令要求約1620字節(jié)的程序空間來存儲(chǔ)兩個(gè)Modbus主站指令和支持例行程序。(5)Modbus主站協(xié)議指令的變量要求284字節(jié)的V區(qū)塊。該塊的起始地址由用戶指定,保留給Modbus變量。(6)S7--200CPU必須是固化程序版本為V2.0或更高版本,才能支持Modbus主站協(xié)議庫(kù)(CPUMLFB21x--2xx23--0XB0)。(7)Modbus主站庫(kù)對(duì)某些功能使用用戶中斷。不得由用戶程序禁止用戶中斷。項(xiàng)目六泵站監(jiān)控系統(tǒng)第45頁/共121頁46Modbus從站協(xié)議指令占用S7-200的以下資源:(1)初始化Modbus從站協(xié)議占用Port0作為Modbus從站協(xié)議通訊。當(dāng)Port0用作Modbus從站協(xié)議通訊時(shí),它不能再用作任何其它目的,包括與STEP7--Micro/WIN通訊。MBUS_INIT指令控制Port0的設(shè)定是Modbus從站協(xié)議還是PPI。(2)Modbus從站協(xié)議指令影響與端口0自由端口通訊相關(guān)的所有SM位置。(3)Modbus從站協(xié)議指令使用3個(gè)子程序和2個(gè)中斷服務(wù)程序。(4)Modbus從站協(xié)議指令的兩個(gè)Modbus從站指令及其支持子程序需占用1857字節(jié)的程序空間。(5)Modbus從站協(xié)議指令的變量要求779字節(jié)的V區(qū)塊。該塊的起始地址由用戶指定,保留給Modbus變量。項(xiàng)目六泵站監(jiān)控系統(tǒng)第46頁/共121頁473、Modbus地址Modbus地址通常是包含數(shù)據(jù)類型和偏移量的5個(gè)字符值。第一個(gè)字符確定數(shù)據(jù)類型,后面四個(gè)字符選擇數(shù)據(jù)類型內(nèi)的正確數(shù)值。Modbus主站尋址--Modbus主站指令可將地址映射到正確功能,然后發(fā)送至從站設(shè)備。Modbus主站指令支持下列Modbus地址:(1)00001到09999是離散輸出(線圈)(2)10001到19999是離散輸入(觸點(diǎn))(3)30001到39999是輸入寄存器(通常是模擬量輸入)(4)40001到49999是保持寄存器所有Modbus地址都是基于1,即,從地址1開始第一個(gè)數(shù)據(jù)值。有效地址范圍取決于從站設(shè)備。不同的從站設(shè)備將支持不同的數(shù)據(jù)類型和地址范圍。項(xiàng)目六泵站監(jiān)控系統(tǒng)第47頁/共121頁48Modbus從站尋址--Modbus主站設(shè)備將地址映射到正確功能。Modbus從站指令支持以下地址:(1)00001至00128是實(shí)際輸出,對(duì)應(yīng)于Q0.0--Q15.7(2)10001至10128是實(shí)際輸入,對(duì)應(yīng)于I0.0--I15.7(3)30001至30032是模擬輸入寄存器,對(duì)應(yīng)于AIW0至AIW62(4)40001至04XXXX是保持寄存器,對(duì)應(yīng)于V區(qū)。所有Modbus地址都是從一開始編號(hào)的。表6.4所示為Modbus地址與S7--200地址的對(duì)應(yīng)關(guān)系。項(xiàng)目六泵站監(jiān)控系統(tǒng)第48頁/共121頁494、Modbus主站指令在S7-200程序中使用Modbus主站指令請(qǐng)遵循以下步驟:1)在程序中插入MBUS_CTRL指令,在每次掃描時(shí)執(zhí)行MBUS_CTRL??梢允褂肕BUS_CTRL指令初始化或改變Modbus通訊參數(shù)。當(dāng)插入MBUS_CTRL指令時(shí),幾個(gè)隱藏的子程序和中斷服務(wù)程序會(huì)自動(dòng)地添加到您的程序中。2)使用庫(kù)存儲(chǔ)器命令為Modbus主站協(xié)議指令所需的V存儲(chǔ)器分配一個(gè)起始地址。3)在程序中輸入一個(gè)或多個(gè)MBUS_MSG指令??梢园匆髮⒍鄠€(gè)MBUS_MSG指令添加到程序中,但每次只有一個(gè)指令處于活動(dòng)狀態(tài)。4)連接S7-200CPU上的端口0(或?qū)Χ丝?庫(kù),使用端口1)和Modbus從站設(shè)備之間的通訊電纜。項(xiàng)目六泵站監(jiān)控系統(tǒng)第49頁/共121頁50Modbus主站指令使用下面所示的Modbus功能讀或?qū)懸粋€(gè)特定的Modbus地址。Modbus從站設(shè)備必須支持讀或?qū)懱囟∕odbus地址所要求的Modbus功能。項(xiàng)目六泵站監(jiān)控系統(tǒng)第50頁/共121頁515、Modbus從站指令在S7-200程序中使用Modbus從站指令請(qǐng)遵循以下步驟:1)在程序中插入MBUS_INIT指令并且只在一個(gè)循環(huán)周期中執(zhí)行該指令,MBUS_INIT指令可用于對(duì)Modbus通訊參數(shù)的初始化或修改。當(dāng)插入MBUS_INIT指令時(shí),幾個(gè)隱藏的子程序和中斷服務(wù)程序會(huì)自動(dòng)地添加到您的程序中。2)使用庫(kù)存儲(chǔ)器命令為Modbus從站協(xié)議指令所要求的V存儲(chǔ)器分配一個(gè)起始地址。3)在程序中只使用一個(gè)MBUS_SLAVE指令。該指令在每個(gè)循環(huán)周期中執(zhí)行,為接收到的所有請(qǐng)求提供服務(wù)。4)使用通訊電纜將S7-200的端口0和Modbus主站設(shè)備連接在一起。項(xiàng)目六泵站監(jiān)控系統(tǒng)第51頁/共121頁52Modbus從站協(xié)議指令支持ModbusRTU協(xié)議。這些指令使用S7-200的自由端口功能,支持大部分常用Modbus功能。表6.6是所支持的Modbus功能:項(xiàng)目六泵站監(jiān)控系統(tǒng)第52頁/共121頁536.3 技能訓(xùn)練:PLC通訊模式的建構(gòu)
項(xiàng)目六泵站監(jiān)控系統(tǒng)第53頁/共121頁546.3.1 任務(wù)一:兩臺(tái)S7-200通過PPI通訊
訓(xùn)練目標(biāo)兩臺(tái)S7-200PLC通過PPI進(jìn)行連接與通訊(如圖6.22),要求將主站的I0.0~I(xiàn)1.7的狀態(tài)映射到從站的Q0.0~Q1.7,同時(shí)將從站的I0.0~I(xiàn)1.7的狀態(tài)映射到主站的Q0.0~Q1.7。項(xiàng)目六泵站監(jiān)控系統(tǒng)第54頁/共121頁55
訓(xùn)練步驟1、進(jìn)行硬件接線(如圖6.22所示)2、NETR與NETW指令介紹在PPI通訊模式中,NETR與NETW是最常見的兩個(gè)指令(如圖6.23所示)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第55頁/共121頁56網(wǎng)絡(luò)讀指令開始一項(xiàng)通信操作,通過指定的端口從遠(yuǎn)程設(shè)備搜集數(shù)據(jù)并形成一個(gè)表TBL。網(wǎng)絡(luò)寫指令開始一項(xiàng)通信操作,通過指定的端口向遠(yuǎn)程設(shè)備寫一個(gè)表TBL中的數(shù)據(jù)。表6.7所示為表TBL的參數(shù)對(duì)照。項(xiàng)目六泵站監(jiān)控系統(tǒng)第56頁/共121頁57該表的說明如下:D:完成(功能完成)0=未完成 1=完成A:現(xiàn)用(功能入隊(duì))0=非現(xiàn)用 1=現(xiàn)用E:錯(cuò)誤 0=無錯(cuò) 1=錯(cuò)誤遠(yuǎn)程站址:存取數(shù)據(jù)的PLC地址數(shù)據(jù)指針:指向PLC中數(shù)據(jù)的間接指針數(shù)據(jù)長(zhǎng)度:存取的數(shù)據(jù)字節(jié)數(shù)目(1-16)接收或傳輸數(shù)據(jù)區(qū)域:為數(shù)據(jù)保留的1-16個(gè)字節(jié)(由數(shù)據(jù)長(zhǎng)度指定),對(duì)于NETR,該數(shù)據(jù)區(qū)域指執(zhí)行NETR之后從遠(yuǎn)程站讀取的數(shù)值存儲(chǔ)的區(qū)域;對(duì)于NETW,該數(shù)據(jù)區(qū)域指執(zhí)行NETW之前發(fā)送至遠(yuǎn)程站的數(shù)值存儲(chǔ)的區(qū)域。項(xiàng)目六泵站監(jiān)控系統(tǒng)第57頁/共121頁583、采用NETR/NETW指令向?qū)瓿上嚓P(guān)任務(wù)(1)指定用戶需要的網(wǎng)絡(luò)操作數(shù)目用戶使用NETR/NETW指令向?qū)?,可以?jiǎn)化網(wǎng)絡(luò)操作配置。向?qū)⒃儐柍跏蓟x項(xiàng),并根據(jù)用戶選擇生成完整的配置。向?qū)г试S配置多達(dá)24項(xiàng)獨(dú)立的網(wǎng)絡(luò)操作,并生成代碼協(xié)調(diào)這些操作。本例中,選擇2項(xiàng)網(wǎng)絡(luò)寫/讀操作(如圖6.24)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第58頁/共121頁59(2)指定端口號(hào)和子程序名稱如果項(xiàng)目可能已經(jīng)包含一個(gè)NETR/NETW向?qū)渲茫幸郧敖⒌呐渲镁蛔詣?dòng)載入向?qū)?。向?qū)?huì)提示用戶完成以下兩個(gè)步驟之一:(a)選擇編輯現(xiàn)有配置,方法是點(diǎn)擊“下一步>”。(b)選擇從項(xiàng)目中刪除現(xiàn)有配置,方法是選擇“刪除”復(fù)選框,并點(diǎn)擊“完成”。如果不存在以前的配置,向?qū)?huì)詢問以下信息:(a)PLC必須被設(shè)為PPI主站模式才能進(jìn)行通信。用戶要指定通信將通過哪一個(gè)PLC端口進(jìn)行。(b)向?qū)Ы⒁粋€(gè)用于執(zhí)行具體網(wǎng)絡(luò)操作的參數(shù)化子程序。向?qū)н€為子程序指定一個(gè)默認(rèn)名稱。本例中新建一個(gè)配置,選擇PLC端口0進(jìn)行通信,可執(zhí)行子程序名采用默認(rèn)名稱NET_EXE,如圖6.25所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第59頁/共121頁60(3)指定網(wǎng)絡(luò)操作對(duì)于每項(xiàng)網(wǎng)絡(luò)操作,用戶需要提供下列信息:(a)指定操作是NETR還是NETW。(b)指定從遠(yuǎn)程PLC(NETR)讀取的數(shù)據(jù)字節(jié)數(shù)或向遠(yuǎn)程PLC(NETW)寫入的數(shù)據(jù)字節(jié)數(shù)。(c)指定用戶希望用于通信的遠(yuǎn)程PLC網(wǎng)絡(luò)地址。(d)如果在配置NETR,指定以下內(nèi)容:-數(shù)據(jù)存儲(chǔ)在本地PLC中的位置。有效操作數(shù):VB、IB、QB、MB、LB。-從遠(yuǎn)程PLC讀取數(shù)據(jù)的位置。有效操作數(shù):VB、IB、QB、MB、LB。(e)如果在配置NETW,指定以下內(nèi)容:-數(shù)據(jù)存儲(chǔ)在本地PLC中的位置。有效操作數(shù):VB、IB、QB、MB、LB。-向遠(yuǎn)程PLC寫入數(shù)據(jù)的位置。有效操作數(shù):VB、IB、QB、MB、LB。項(xiàng)目六泵站監(jiān)控系統(tǒng)第60頁/共121頁61本例中,第一項(xiàng)操作為NETR指令,讀取字節(jié)數(shù)為1,遠(yuǎn)程站地址為6,數(shù)據(jù)傳輸為VB307(本地)、VB200(遠(yuǎn)程),如圖6.26所示;單擊“下一項(xiàng)操作”按鈕,進(jìn)入第二項(xiàng)NERW指令,讀取字節(jié)數(shù)為1,遠(yuǎn)程站地址為6,數(shù)據(jù)傳輸為VB207(本地)、VB300(遠(yuǎn)程),如圖6.27所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第61頁/共121頁62(4)分配V存儲(chǔ)區(qū)對(duì)于用戶配置的每一項(xiàng)網(wǎng)絡(luò)操作,要求有12個(gè)字節(jié)的V存儲(chǔ)區(qū)。用戶指定可放置配置的V存儲(chǔ)區(qū)起始地址。向?qū)?huì)自動(dòng)建議一個(gè)地址,但可以編輯該地址。本例中,采用建議地址VB0~VB18即可(如圖6.28所示)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第62頁/共121頁63(5)生成程序代碼回答這些詢問后,如圖6.29點(diǎn)擊“完成”,S7-200指令向?qū)橹付ǖ木W(wǎng)絡(luò)操作生成代碼。由向?qū)Ы⒌淖映绦虺蔀轫?xiàng)目的一部分。項(xiàng)目六泵站監(jiān)控系統(tǒng)第63頁/共121頁64要在程序中使能網(wǎng)絡(luò)通信,需要在主程序塊中調(diào)用執(zhí)行子程序(NET_EXE)。每次掃描周期時(shí),使用SM0.0調(diào)用該子程序(如圖6.30所示)。這樣會(huì)啟動(dòng)配置網(wǎng)絡(luò)操作執(zhí)行。項(xiàng)目六泵站監(jiān)控系統(tǒng)第64頁/共121頁65從站的子程序相對(duì)簡(jiǎn)單,主要在開機(jī)時(shí)清空V區(qū)數(shù)據(jù),并將輸入、輸出與V區(qū)數(shù)據(jù)進(jìn)行映射即可,如圖6.31所示。項(xiàng)目六泵站監(jiān)控系統(tǒng)第65頁/共121頁666.3.2 任務(wù)二:利用自由口通訊協(xié)議進(jìn)行S7-200自由口接收
訓(xùn)練目標(biāo)S7-200從端口0接收計(jì)算機(jī)發(fā)送來的字符串,并把接收到的第一個(gè)字節(jié)傳送到Q0.0~Q1.7上顯示(如圖6.32所示)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第66頁/共121頁67
訓(xùn)練步驟1、利用PC/PPI電纜作為自由口通訊的硬件連線;2、進(jìn)行如下編程程序清單包括主程序(如圖6.33所示)、子程序SBR_0(如圖6.34所示)、子程序SBR_1(如圖6.35所示)、中斷程序INT_0(如圖6.36所示)。項(xiàng)目六泵站監(jiān)控系統(tǒng)第67頁/共121頁68圖6.33主程序項(xiàng)目六泵站監(jiān)控系統(tǒng)第68頁/共121頁69圖6.34子程序SBR_0項(xiàng)目六泵站監(jiān)控系統(tǒng)第69頁/共121頁70圖6.35子程序SBR_1項(xiàng)目六泵站監(jiān)控系統(tǒng)第70頁/共121頁71圖6.36中斷程序INT_0項(xiàng)目六泵站監(jiān)控系統(tǒng)第71頁/共121頁723、利用超級(jí)終端軟件進(jìn)行模擬第一步:把PLC的輸入I0.0閉合,設(shè)置為“PPI模式→自由口模式”,在STEP7-Micro/WIN還打開的情況下則可以看到如圖6.37所示;圖6.37“PPI模式→自由口模式”項(xiàng)目六泵站監(jiān)控系統(tǒng)第72頁/共121頁73第二步:在Windows桌面上,單擊“開始→附件→通信→超級(jí)終端”,為要建立的連接輸入名稱,如圖6.38所示。圖6.38建立連接項(xiàng)目六泵站監(jiān)控系統(tǒng)第73頁/共121頁74第三步:選擇連接時(shí)要使用的串口,如圖6.39所示。圖6.39選擇串口項(xiàng)目六泵站監(jiān)控系統(tǒng)第74頁/共121頁75第四步:設(shè)置串口通信參數(shù)并保存連接,注意此處設(shè)置要與PLC程序中對(duì)應(yīng),如圖6.40所示。圖6.40COM1屬性設(shè)置項(xiàng)目六泵站監(jiān)控系統(tǒng)第75頁/共121頁76第五步:對(duì)該連接進(jìn)行屬性設(shè)置,如圖6.41所示,以“換行符作為發(fā)送行末尾”等進(jìn)行ASCII參數(shù)并保存。項(xiàng)目六泵站監(jiān)控系統(tǒng)第76頁/共121頁77圖6.41ASCII設(shè)置項(xiàng)目六泵站監(jiān)控系統(tǒng)第77頁/共121頁78第六步:把PLC打到運(yùn)行狀態(tài),同時(shí)將I0.0打到ON,在超級(jí)終端中輸入字符串,如圖6.42所示。這時(shí)可以觀測(cè)到QB0的輸出為53H(即“STEP”第一個(gè)字符“S”的十六制輸出53H)。圖6.42超級(jí)終端窗口項(xiàng)目六泵站監(jiān)控系統(tǒng)第78頁/共121頁796.3.3 任務(wù)三:Modbus通訊協(xié)議范例
訓(xùn)練目標(biāo)在兩臺(tái)S7-200CPU之間建立一個(gè)簡(jiǎn)單的Modbus主-從通訊(圖6.43所示)圖6.43兩臺(tái)PLC之間的Modbus通信項(xiàng)目六泵站監(jiān)控系統(tǒng)第79頁/共121頁80
訓(xùn)練步驟1、硬件設(shè)置本任務(wù)中,Modbus通訊是在兩個(gè)S7-200CPU的0號(hào)通訊口間進(jìn)行的(最好每個(gè)CPU都有兩個(gè)通訊口)。在主站側(cè)也可以用相應(yīng)庫(kù)文件"MBUS_CTRL_P1"和"MBUS_MSG_P1"通過1號(hào)通訊口通信。通訊口1用Micro/WIN與PG或PC建立連接,兩個(gè)CPU的通訊口0通過Profibus纜進(jìn)行連接(電纜的針腳連接為3-3,8-8)。另外,需要確定邏輯地M相連。項(xiàng)目六泵站監(jiān)控系統(tǒng)第80頁/共121頁812、參數(shù)匹配在Micro/WIN中您需要為主站和從站新建一個(gè)項(xiàng)目,程序與參數(shù)設(shè)置見圖6.44。對(duì)于MODBUS通訊,主站側(cè)需要程序庫(kù)"MBUS_CTRL"和"MBUS_MSG",從站側(cè)需要程序庫(kù)"MBUS_INIT"and"MBUS_SLAVE"。必須要保證主站與從站的“Baud”和“Parity”的參數(shù)設(shè)置要一致,并且程序塊"MBUS_MSG"中的"Slave"地址要與程序塊"MBUS_INIT"中的"Addr"所設(shè)置的一致。在STEP7-Micro/WIN“系統(tǒng)塊”中設(shè)置的通訊口0的波特率與MODBUS協(xié)議無關(guān)("Mode"="1")。項(xiàng)目六泵站監(jiān)控系統(tǒng)第81頁/共121頁82參數(shù)意義選項(xiàng)EN使能
Mode協(xié)議選擇0=PPI,1=MODBUSBaud傳輸速率
kbps1200,2400,4800,9600,19200,38400,57600,115200Parity校驗(yàn)選擇0=無校驗(yàn),1=奇校驗(yàn),2=偶校驗(yàn)Timeout從站的最長(zhǎng)響應(yīng)時(shí)間
ms
Done“完成”標(biāo)志位
Error錯(cuò)誤代碼表6.8主站MBUS_CTRL指令項(xiàng)目六泵站監(jiān)控系統(tǒng)第82頁/共121頁83參數(shù)意義選項(xiàng)EN使能
First讀寫請(qǐng)求位
Slave從站地址
RW"讀"或"寫"0=讀,1=寫Addr讀寫從站的數(shù)據(jù)地址0..128=數(shù)字量輸出Q0.0..Q15.710001..10128=數(shù)字量輸入I0.0..I15.7
30001..30092=模擬量輸入AIW0..AIW62
40001..49999=保持寄存器2Count位或字的個(gè)數(shù)(0xxxx,1xxxx)/words(3xxxx,4xxxx)
DataPtrV存儲(chǔ)區(qū)起始地址指針
Done'完成'標(biāo)志位
Error錯(cuò)誤代碼表6.9主站MBUS_MSG指令項(xiàng)目六泵站監(jiān)控系統(tǒng)第83頁/共121頁84參數(shù)意義選項(xiàng)EN使能
Mode協(xié)議選擇0=PPI,1=MODBUSAddr從站地址
Baud傳輸速率kbps1200,2400,4800,9600,19200,38400,57600,115200Parity奇偶校驗(yàn)0=無校驗(yàn),1=奇校驗(yàn),2=偶校驗(yàn)Delay延時(shí)時(shí)間ms
MaxIQ最大數(shù)字輸入輸出點(diǎn)數(shù)MaxAI最大模擬量輸入點(diǎn)數(shù)MaxHold最大保持寄存器字?jǐn)?shù)量HoldStart保持寄存器區(qū)起始地址(40001)
Done完成標(biāo)志位
Error錯(cuò)誤代碼表6.10從站MBUS_INIT指令項(xiàng)目六泵站監(jiān)控系統(tǒng)第84頁/共121頁85
參數(shù)意義選項(xiàng)EN使能
Done完成標(biāo)志位
Error錯(cuò)誤代碼表6.11從站MBUS_SLAVE指令項(xiàng)目六泵站監(jiān)控系統(tǒng)第85頁/共121頁863、庫(kù)的存儲(chǔ)地址項(xiàng)目完成后必須要在Micro/WIN中定義庫(kù)的存儲(chǔ)地址,如圖6.45所示。a)從站b)主站圖6.45定義庫(kù)的存儲(chǔ)地址項(xiàng)目六泵站監(jiān)控系統(tǒng)第86頁/共121頁87將程序下載到相應(yīng)的CPU后,可以在狀態(tài)表中給主站側(cè)的V存儲(chǔ)區(qū)賦值,然后從站側(cè)監(jiān)視數(shù)值的變化。當(dāng)主站的I0.0使能后,VW2中的內(nèi)容就被發(fā)送到從站并寫入從站的VW2。保持寄存器值的傳輸見圖6.46所示。圖6.46保持寄存器值的傳輸項(xiàng)目六泵站監(jiān)控系統(tǒng)第87頁/共121頁886.4 項(xiàng)目設(shè)計(jì)方案
項(xiàng)目六泵站監(jiān)控系統(tǒng)第88頁/共121頁896.4.1 泵站監(jiān)控的硬件設(shè)計(jì)泵站監(jiān)控系統(tǒng)的硬件接線示意如圖6.47所示,其中S7-200與計(jì)算機(jī)(裝有VisualBasic軟件)通過PC/PPI電纜進(jìn)行通信。圖6.47泵站監(jiān)控接線示意項(xiàng)目六泵站監(jiān)控系統(tǒng)第89頁/共121頁90S7-200的輸入信號(hào)如表6.12所示。輸入點(diǎn)說明輸入點(diǎn)說明I0.0~I(xiàn)0.11#噴淋運(yùn)行與故障信號(hào)I1.0~I(xiàn)1.11#高壓運(yùn)行與故障信號(hào)I0.2備用噴淋運(yùn)行信號(hào)I1.2備用高壓運(yùn)行信號(hào)I0.3PPI/自由口通訊切換開關(guān)I1.3備用I0.4~I(xiàn)0.52#噴淋運(yùn)行與故障信號(hào)I1.4~I(xiàn)1.52#高壓運(yùn)行與故障信號(hào)I0.6~I(xiàn)0.73#噴淋運(yùn)行與故障信號(hào)I1.6~I(xiàn)1.73#高壓運(yùn)行與故障信號(hào)項(xiàng)目六泵站監(jiān)控系統(tǒng)第90頁/共121頁916.4.2 泵站監(jiān)控的軟件設(shè)計(jì)1、S7-200程序的編制泵站監(jiān)控的PLC程序包括主程序、子程序SBR_0、SBR_1和中斷子程序INT_0,程序清單及注釋如圖6.48~圖6.51所示。圖6.48主程序項(xiàng)目六泵站監(jiān)控系統(tǒng)第91頁/共121頁92圖6.49子程序0項(xiàng)目六泵站監(jiān)控系統(tǒng)第92頁/共121頁93圖6.50子程序1項(xiàng)目六泵站監(jiān)控系統(tǒng)第93頁/共121頁94圖6.51中斷子程序項(xiàng)目六泵站監(jiān)控系統(tǒng)第94頁/共121頁952、VisualBasic軟件編程VisualBasic是一種功能強(qiáng)大、簡(jiǎn)單易學(xué)的程序設(shè)計(jì)語言。它不但保留了原先Basic語言的全部功能,而且還增加了面向?qū)ο蟪绦蛟O(shè)計(jì)功能。它不僅可以方便快捷地編制適用于數(shù)據(jù)處理、多媒體等方面的程序圖6.51中斷子程序,而且利用ActiveX控件MSComm還能十分方便地開發(fā)出使用計(jì)算機(jī)串口的計(jì)算機(jī)通信程序。在泵站系統(tǒng)中,正是利用MSComm控件進(jìn)行與S7-200進(jìn)行通訊。項(xiàng)目六泵站監(jiān)控系統(tǒng)第95頁/共121頁96VisualBasic軟件需要先選定控件MicrosoftCommControl6.0(如圖6.52所示),同時(shí)可以從工具欄中看到標(biāo)識(shí)(如圖6.53所示)。圖6.52選定控件MicrosoftCommControl6.0項(xiàng)目六泵站監(jiān)控系統(tǒng)第96頁/共121頁97圖6.53MSComm工具欄項(xiàng)目六泵站監(jiān)控系統(tǒng)第97頁/共121頁98利用MSComm控件實(shí)現(xiàn)計(jì)算機(jī)通信的關(guān)鍵是理解并正確設(shè)置MSComm控件眾多屬性和方法。以下是MSComm控件的常用屬性和方法:項(xiàng)目六泵站監(jiān)控系統(tǒng)第98頁/共121頁99●Commport:設(shè)置或返回串口號(hào)?!馭ettings:以字符串的形式設(shè)置或返回串口通信參數(shù)?!馪ortopen:設(shè)置或返回串口狀態(tài)?!馡nputMode:設(shè)置或返回接收數(shù)據(jù)的類型?!馡nputlen:設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)?!馡nBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)?!馡nBufferCount:設(shè)置或返回接收緩沖區(qū)中等待計(jì)算機(jī)接收的字符數(shù)。●Input:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設(shè)計(jì)時(shí)無效,運(yùn)行時(shí)只讀?!馩utBufferSize:設(shè)置或返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)?!馩utBufferCount:設(shè)置或返回發(fā)送緩沖區(qū)中等待計(jì)算機(jī)發(fā)送的字符數(shù)?!馩utput:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計(jì)時(shí)無效,運(yùn)行時(shí)只讀。●Rthreshold:該屬性為一閥值。當(dāng)接收緩沖區(qū)中字符數(shù)達(dá)到該值時(shí),MSComm控件設(shè)置Commevent屬性為ComEvReceive,并產(chǎn)生OnComm事件。用戶可在OnComm事件處理程序中進(jìn)行相應(yīng)處理。若Rthreshold屬性設(shè)置為0,則不產(chǎn)生OnComm事件。例如用戶希望接收緩沖區(qū)中達(dá)到一個(gè)字符就接收一個(gè)字符,可將Rthreshold設(shè)置為1。這樣接收緩沖區(qū)中接收到一個(gè)字符,就產(chǎn)生一次OnComm事件?!馭threshold:該屬性亦為一閥值。當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值時(shí),MSComm控件設(shè)置Commevent屬性為ComEvSend,并產(chǎn)生OnComm事件。若Sthreshold屬性設(shè)置為0,則不產(chǎn)生OnComm事件。要特別注意的是僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值的瞬間才產(chǎn)生OnComm事件,其后就不再產(chǎn)生OnComm事件。例如Sthreshold設(shè)置為3,僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)從3降為2時(shí),MSComm控件設(shè)置Commevent屬性為ComEvSend,同時(shí)產(chǎn)生OnComm事件,如發(fā)送緩沖區(qū)中字符始終為2,則不會(huì)再產(chǎn)生OnComm事件。這就避免了發(fā)送緩沖區(qū)中數(shù)據(jù)未發(fā)送完就反復(fù)發(fā)生OnComm事件?!馛ommEvent:這是一個(gè)非常重要的屬性。該屬性設(shè)計(jì)時(shí)無效,運(yùn)行時(shí)只讀。一旦串口發(fā)生通信事件或產(chǎn)生錯(cuò)誤,依據(jù)產(chǎn)生的事件和錯(cuò)誤,MSComm控件為CommEvent屬性賦不同的代碼,同時(shí)產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對(duì)不同的代碼,進(jìn)行相應(yīng)的處理。項(xiàng)目六泵站監(jiān)控系統(tǒng)第99頁/共121頁100本泵站監(jiān)控的測(cè)試程序如圖6.54和圖6.55所示。圖6.54VisualBasic界面項(xiàng)目六泵站監(jiān)控系統(tǒng)第100頁/共121頁101圖6.55VisualBasic程序項(xiàng)目六泵站監(jiān)控系統(tǒng)第101頁/共121頁1026.5.3 監(jiān)控程序的調(diào)試超級(jí)終端組態(tài)調(diào)試使用在6.4任務(wù)建立的超級(jí)終端接收S7-200發(fā)送的信息,如圖6.56所示。其中3840十進(jìn)制轉(zhuǎn)化為二進(jìn)制為1111000000000000,即對(duì)應(yīng)I0.0~I(xiàn)0.3為ON,其余均為OFF。圖6.56超級(jí)終端接收窗口項(xiàng)目六泵站監(jiān)控系統(tǒng)第102頁/共121頁103VisualBasci程序調(diào)試直接運(yùn)行VisualBasic程序,結(jié)果如圖6.57所示。圖6.57運(yùn)行VisualBasic程序項(xiàng)目六泵站監(jiān)控系統(tǒng)第103頁/共121頁1046.5 技術(shù)答疑項(xiàng)目六泵站監(jiān)控系統(tǒng)第104頁/共121頁105【問題1】在自由口通訊方式中,經(jīng)常會(huì)碰到STEP7-Micro/WIN軟件與S7-200通訊不上,為什么?只有當(dāng)S7--200處于RUN模式時(shí),才能進(jìn)行自由端口通訊。要使能自由端口模式,應(yīng)該在SMB30(端口0)或者SMB130(端口1)的協(xié)議選擇區(qū)中設(shè)置01。處于自由端口通訊模式時(shí),不能與編程設(shè)備通訊。另外,也可以使用特殊寄存器位SM0.7來控制自由端口模式。SM0.7反映的是操作模式開關(guān)的當(dāng)前位置。當(dāng)SM0.7等于0時(shí),開關(guān)處于TERM位置;當(dāng)SM0.7=1時(shí),操作模式開關(guān)位于RUN位置。如果只有模式開關(guān)處于RUN位置時(shí),才允許自由端口模式,您可以將開關(guān)改變到其他位置上,使用編程設(shè)備監(jiān)控S7-200的運(yùn)行。項(xiàng)目六泵站監(jiān)控系統(tǒng)項(xiàng)目六泵站監(jiān)控系統(tǒng)第105頁/共121頁106【問題2】在Modbus通訊中,經(jīng)常會(huì)通訊連不上,如何去判斷通訊錯(cuò)誤的原因?對(duì)于從站而言,可以采用MBUS_SLAVE指令(如圖6.58所示)的Error信息進(jìn)行判斷。該指令被用于為Modbus主設(shè)備發(fā)出的請(qǐng)求服務(wù),并且必須在每次掃描時(shí)執(zhí)行,以便允許該指令檢查和回答Modbus請(qǐng)求。在每次掃描且EN輸入開啟時(shí)執(zhí)行該指令。MBUS_SLAVE指令無輸入?yún)?shù)。當(dāng)MBUS_SLAVE指令對(duì)Modbus請(qǐng)求作出應(yīng)答時(shí),"完成"輸出打開。如果沒有需要服務(wù)的請(qǐng)求時(shí),"完成"輸出關(guān)閉。"錯(cuò)誤"輸出包含執(zhí)行該指令的結(jié)果。該輸出只有在"完成"打開時(shí)才有效。如果"完成"關(guān)閉,錯(cuò)誤參數(shù)不會(huì)改變。項(xiàng)目六泵站監(jiān)控系統(tǒng)第106頁/共121頁107錯(cuò)誤代碼 說明0 無錯(cuò)誤1 內(nèi)存范圍錯(cuò)誤2 非法波特率或奇偶校驗(yàn)3 非法從屬地址4 非法Modbus參數(shù)值5 保持寄存器與Modbus從屬符號(hào)重疊6 收到奇偶校驗(yàn)錯(cuò)誤7 收到CRC錯(cuò)誤8 非法功能請(qǐng)求/功能不受支持9 請(qǐng)求中的非法內(nèi)存地址10 從屬功能未啟用項(xiàng)目六泵站監(jiān)控系統(tǒng)第107頁/共121頁108對(duì)于主站而言,則使用MUBS_MSG指令(圖6.59),用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。當(dāng)EN輸入和"首次"輸入打開時(shí),BUS_MSG指令啟動(dòng)對(duì)Modbus從站的請(qǐng)求。發(fā)送請(qǐng)求、等待應(yīng)答、并處理應(yīng)答通常需要多次掃描。EN輸入必須打開以啟用請(qǐng)求的發(fā)送,并應(yīng)該保持打開直到"完成"位被置位。項(xiàng)目六泵站監(jiān)控系統(tǒng)第108頁/共121頁109MBUS_MSG錯(cuò)誤代碼 說明0 無錯(cuò)誤1 應(yīng)答時(shí)奇偶校驗(yàn)錯(cuò)誤:僅當(dāng)使用偶校驗(yàn)或奇校驗(yàn)時(shí)才會(huì)發(fā)生。傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲)引起的。2 未使用3 接收超時(shí):在"超時(shí)"時(shí)間內(nèi),沒有來自從站的應(yīng)答。可能有以下一些原因:與從站的電氣連接有問題、主設(shè)備和從站設(shè)置為不同的波特率/奇偶校驗(yàn)設(shè)置,以及錯(cuò)誤的從站地址。4 請(qǐng)求參數(shù)出錯(cuò):一個(gè)或多個(gè)輸入?yún)?shù)(從站、讀寫、地址或計(jì)數(shù))被設(shè)置為非法值。檢查文檔中輸入?yún)?shù)的允許值。5 Modbus主設(shè)備未啟用:在調(diào)用MBUS_MSG前,每次掃描時(shí)都調(diào)用MBUS_CTRL。6 Modbus忙于處理另一個(gè)請(qǐng)求:一次只能激活一條MBUS_MSG指令。7 應(yīng)答時(shí)出錯(cuò):收到的應(yīng)答與請(qǐng)求不相關(guān)。這表示從站中出現(xiàn)了某些錯(cuò)誤,或者錯(cuò)誤的從站應(yīng)答了請(qǐng)求。8 應(yīng)答時(shí)CRC錯(cuò)誤:傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲)引起的。101 從站不支持在該地址處所請(qǐng)求的功能:請(qǐng)參閱"使用Modbus主設(shè)備指令"幫助主題中的所需Modbus從站功能支持表。102 從站不支持?jǐn)?shù)據(jù)地址:"地址"加上"計(jì)數(shù)"所要求的地址范圍超出了從站所允許的地址范圍。103 從站不支持?jǐn)?shù)據(jù)類型:該"地址"類型不被從站支持。104 從站故障105 從站已接受消息但應(yīng)答延遲:這是MBUS_MSG的錯(cuò)誤,用戶程序應(yīng)在稍后重新發(fā)送請(qǐng)求。106 從站忙,因此拒絕消息:可以再次嘗試相同的請(qǐng)求,以獲得應(yīng)答。107 從站因未知原因而拒絕消息108 從站存儲(chǔ)器奇偶校驗(yàn)錯(cuò)誤:從站中有錯(cuò)誤。項(xiàng)目六泵站監(jiān)控系統(tǒng)第109頁/共121頁110【問題3】在S7-200通訊中,影響網(wǎng)絡(luò)通訊性能的因素有哪些?影響網(wǎng)絡(luò)性能的因素有以下幾個(gè)(波特率和主站數(shù)的影響最大):1、波特率:以所有設(shè)備都支持的最高波特率操作網(wǎng)絡(luò)將具有最佳的效果。2、網(wǎng)絡(luò)上的主站數(shù)目:將網(wǎng)絡(luò)上的主站數(shù)目降至最小也可提高網(wǎng)絡(luò)性能。網(wǎng)絡(luò)上的每個(gè)主站都會(huì)增大網(wǎng)絡(luò)的負(fù)載要求;主站越少,負(fù)載越低。3、選擇主站和從網(wǎng)絡(luò)地址:應(yīng)將主站設(shè)備的地址設(shè)置為使用連續(xù)地址,各地址之間沒有間隙。當(dāng)主站間存在地址間隙時(shí),主站連續(xù)檢查間隙內(nèi)的地址,確定是否有其它主站等待進(jìn)入連接。這個(gè)檢查需要時(shí)間,這樣會(huì)增加網(wǎng)絡(luò)的負(fù)載。如果主站之間沒有地址間隙,就不需要進(jìn)行檢查,這樣網(wǎng)絡(luò)的負(fù)載最小。只要從站不位于主站之間,從網(wǎng)絡(luò)地址設(shè)置成任何值不會(huì)影響網(wǎng)絡(luò)性能。位于主站之間的從站會(huì)造成主站之間的地址間隙,因而會(huì)增加網(wǎng)絡(luò)的負(fù)載。項(xiàng)目六泵站監(jiān)控系統(tǒng)第110頁/共121頁1114、間隙更新系數(shù)(GUF):只有在S7-200CPU當(dāng)作PPI主站運(yùn)行時(shí)才使用,GUF告訴S7-200檢查其它主站的地址間隙的頻率。使用STE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度大型運(yùn)動(dòng)會(huì)安防系統(tǒng)合同
- 2024年度大數(shù)據(jù)分析服務(wù)合同標(biāo)的明細(xì)
- 2024年專用:租賃合同保證金條款匯編
- 2024年度居民住宅鋁合金門窗安裝工程合同
- 2024年廢舊物資回收協(xié)議
- 2024工程合規(guī)審查中的黑白合同問題探討
- 04版智能硬件研發(fā)與制造分包合同
- 2024年國(guó)際貨運(yùn)代理及倉(cāng)儲(chǔ)物流合作合同
- 2024年度5G基站建設(shè)與運(yùn)營(yíng)合作協(xié)議
- 2024年一年級(jí)數(shù)學(xué)老師家長(zhǎng)會(huì)
- 2024年居間服務(wù)委托協(xié)議
- 2024年動(dòng)遷房購(gòu)買合同范本
- JJG 165-2024鐘罩式氣體流量標(biāo)準(zhǔn)裝置檢定規(guī)程
- 江西省萍鄉(xiāng)市2024-2025學(xué)年高二上學(xué)期期中考試地理試題
- 新版加油站安全操作規(guī)程
- 2023年貴州黔東南州州直機(jī)關(guān)遴選公務(wù)員考試真題
- 貨物質(zhì)量保證措施方案
- 黑龍江省龍東地區(qū)2024-2025學(xué)年高二上學(xué)期階段測(cè)試(二)(期中) 英語 含答案
- 4S店展廳改造裝修合同
- (培訓(xùn)體系)2020年普通話測(cè)試培訓(xùn)材料
- 3-4單元測(cè)試-2024-2025學(xué)年統(tǒng)編版語文六年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論