




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于modbuscp協(xié)議的s7-plc通信研究
0基于s1-plc的智能設(shè)計(jì)s7-incl已廣泛應(yīng)用于現(xiàn)場(chǎng)控制領(lǐng)域。然而,s7-incl沒(méi)有關(guān)于歐盟網(wǎng)絡(luò)的公開協(xié)議。Modbus/TCP協(xié)議作為一種工業(yè)以太網(wǎng)通信標(biāo)準(zhǔn)協(xié)議,廣泛應(yīng)用于工業(yè)自動(dòng)化控制領(lǐng)域。與S7-PLC相比,國(guó)內(nèi)外眾多中大型PLC都支持Modbus/TCP通信協(xié)議,用戶不需要編寫Modbus/TCP應(yīng)用層程序,就可直接使用,諸如國(guó)外Schneider公司推出的Quantum、Premium系列PLC和國(guó)內(nèi)南瑞集團(tuán)公司推出的MB40、MB80系列iPLC(智能可編程控制器)等,目前S7-PLC需要用戶購(gòu)買昂貴的軟件包方可實(shí)現(xiàn)Modbus/TCP通信,而不能直接實(shí)現(xiàn),這樣既不利于Modbus/TCP通信在S7-PLC上應(yīng)用,也不利于S7-PLC在自動(dòng)化控制領(lǐng)域朝數(shù)字化、信息化、網(wǎng)絡(luò)化和標(biāo)準(zhǔn)化方向發(fā)展趨勢(shì)下應(yīng)用,因此在S7-PLC支持TCP/IP協(xié)議基礎(chǔ)上設(shè)計(jì)Modbus/TCP應(yīng)用層程序?qū)崿F(xiàn)在S7-PLC上Modbus/TCP通信應(yīng)用尤為重要。筆者通過(guò)Modbus/TCP應(yīng)用層程序開發(fā)以及組態(tài)配置實(shí)現(xiàn)上位機(jī)與S7-PLC基于Modbus/TCP協(xié)議通信。1通信可行性1.1基于單元標(biāo)記的數(shù)據(jù)幀Modbus/TCP協(xié)議是運(yùn)行在TCP/IP上的Modbus報(bào)文傳輸協(xié)議,使用TCP/IP以太網(wǎng)的5層,協(xié)議數(shù)據(jù)格式為每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的十六進(jìn)制字符,與ModbusRTU協(xié)議相同。其應(yīng)用數(shù)據(jù)單元(ADU)包含報(bào)文頭、功能代碼和數(shù)據(jù)3部分,功能代碼和數(shù)據(jù)構(gòu)成協(xié)議數(shù)據(jù)單元(PDU),報(bào)文頭(MBAP)由事務(wù)處理標(biāo)識(shí)符(2字節(jié))、協(xié)議標(biāo)識(shí)符(2字節(jié))、長(zhǎng)度(2字節(jié),余下域字節(jié)的數(shù)量,包含單元標(biāo)識(shí)符和協(xié)議數(shù)據(jù)單元在內(nèi))、單元標(biāo)識(shí)符(1字節(jié))組成。Modbus/TCP數(shù)據(jù)幀是基于Modbus-RTU數(shù)據(jù)幀,幀頭添加事務(wù)元標(biāo)識(shí)符、協(xié)議標(biāo)識(shí)符、長(zhǎng)度等6字節(jié),幀尾去除容錯(cuò)校驗(yàn)碼,用報(bào)頭中的單元標(biāo)識(shí)符取代Modbus-RTU上通常使用的從站地址,Modbus/TCP在應(yīng)用層不需要校驗(yàn)域,而是利用TCP層、IP層和以太網(wǎng)鏈路層差錯(cuò)校驗(yàn)碼的使用校驗(yàn)和機(jī)制來(lái)校驗(yàn)分組交換的準(zhǔn)確性。該協(xié)議采用請(qǐng)求和響應(yīng)機(jī)制:客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求,分析處理請(qǐng)求,向客戶機(jī)發(fā)送應(yīng)答。其數(shù)據(jù)幀封裝過(guò)程為:用戶數(shù)據(jù)首先在應(yīng)用層按照Modbus應(yīng)用層規(guī)范進(jìn)行封裝,生成相應(yīng)的請(qǐng)求或應(yīng)答應(yīng)用數(shù)據(jù)單元(ADU),該ADU按照RFC1042規(guī)范映射到TCP/IP協(xié)議棧的各層進(jìn)行數(shù)據(jù)封裝。Modbus/TCP數(shù)據(jù)幀拆解過(guò)程與封裝過(guò)程相反。1.2ss-plc循環(huán)執(zhí)行S7-PLC支持通過(guò)內(nèi)部總線進(jìn)行CPU模件和以太網(wǎng)模件數(shù)據(jù)交換,以太網(wǎng)模件支持TCP/IP協(xié)議,S7-PLC可通過(guò)以太網(wǎng)模件與上位機(jī)實(shí)現(xiàn)通信連接。S7-PLC軟件平臺(tái)STEP7軟件配備了結(jié)構(gòu)化語(yǔ)言SCL,是西門子公司依據(jù)IEC61131-3標(biāo)準(zhǔn)創(chuàng)立的一種高等編程語(yǔ)言,它與編程語(yǔ)言Pascal類似,它能實(shí)現(xiàn)龐雜的數(shù)學(xué)運(yùn)算、復(fù)雜算法優(yōu)化和批量數(shù)據(jù)處理,編寫的程序非常簡(jiǎn)練和緊湊。S7-PLC循環(huán)執(zhí)行的主程序組織塊OB1可以直接或者間接地調(diào)用相應(yīng)的FB、FC、SFB、SFC實(shí)現(xiàn)數(shù)據(jù)采集、過(guò)程監(jiān)測(cè)、控制調(diào)節(jié)以及通信功能。FC、FB是用戶程序,可以編程使用,F(xiàn)B有其專用的背景數(shù)據(jù)塊,F(xiàn)B可以有多個(gè)背景數(shù)據(jù)塊實(shí)現(xiàn)不同對(duì)象的同一功能,SFB、SFC是系統(tǒng)程序,可以被調(diào)用。SFC59(RD_REC)為CPU模件通過(guò)內(nèi)部總線接收數(shù)據(jù)的系統(tǒng)功能,SFC58(WR_REC)為CPU模件通過(guò)內(nèi)部總線發(fā)送數(shù)據(jù)的系統(tǒng)功能。1.3ieee802.3—設(shè)計(jì)模型Modbus/TCP協(xié)議首先需要在上位機(jī)和S7-PLC建立可靠的連接,然后保證數(shù)據(jù)可靠并且按順序到達(dá)傳輸。S7-PLC基于Modbus/TCP協(xié)議應(yīng)用模型見表1,利用該模型可將S7-PLC作為Modbus/TCP協(xié)議的服務(wù)器,與監(jiān)控系統(tǒng)中上位機(jī)實(shí)現(xiàn)Modbus/TCP通信。通信過(guò)程為:(1)S7-PLC中以太網(wǎng)模件通過(guò)TCP/IP通信獲取上位機(jī)發(fā)送的Modbus/TCP協(xié)議IEEE802.3以太網(wǎng)報(bào)文,以太網(wǎng)模件TCP/IP協(xié)議棧從以太網(wǎng)物理層、數(shù)據(jù)鏈路層、IP層和TCP層逐層拆解以太網(wǎng)報(bào)文;(2)通信程序調(diào)用SFC59(RD_REC),通過(guò)內(nèi)部總線從以太網(wǎng)模件獲取請(qǐng)求應(yīng)用數(shù)據(jù)幀;(3)通信程序?qū)?yīng)用數(shù)據(jù)幀拆分成MBAP報(bào)頭和協(xié)議數(shù)據(jù)單元,并對(duì)MBAP報(bào)頭和協(xié)議數(shù)據(jù)單元細(xì)分,對(duì)協(xié)議數(shù)據(jù)單元中功能碼和數(shù)據(jù)分析,進(jìn)行相應(yīng)讀寫操作;(4)通信程序?qū)⑸纤蛿?shù)據(jù)和功能碼封裝在應(yīng)答的協(xié)議數(shù)據(jù)單元,再按協(xié)議規(guī)范封裝MBAP報(bào)頭,構(gòu)成Modbus/TCP應(yīng)用數(shù)據(jù)單元;(5)通信程序調(diào)用SFC58(WR_REC),通過(guò)內(nèi)部總線將應(yīng)答的應(yīng)用數(shù)據(jù)單元寫入以太網(wǎng)模件;(6)以太網(wǎng)模件TCP/IP協(xié)議棧將應(yīng)用數(shù)據(jù)單元在TCP層、IP層、數(shù)據(jù)鏈路層和以太網(wǎng)物理層逐層封裝,構(gòu)成完整的IEEE802.3以太網(wǎng)報(bào)文,最終通過(guò)TCP/IP通信將Modbus/TCP應(yīng)用數(shù)據(jù)單元封裝在內(nèi)的應(yīng)答以太網(wǎng)報(bào)文發(fā)送至上位機(jī)。過(guò)程(1)和(6)需要通過(guò)硬件組態(tài)和網(wǎng)絡(luò)配置,由以太網(wǎng)模件自動(dòng)完成,其他過(guò)程則通過(guò)編寫應(yīng)用層通信程序FB實(shí)現(xiàn),設(shè)計(jì)應(yīng)用層用戶通信程序也是本文研究重點(diǎn)。2功能請(qǐng)求對(duì)比S7-PLC作為服務(wù)器與作為客戶機(jī)的上位機(jī)基于請(qǐng)求/響應(yīng)機(jī)制進(jìn)行Modbus/TCP通信。本文S7-PLC的Modbus/TCP通信功能碼有8種,功能碼和功能作用見表2。上位機(jī)向S7-PLC發(fā)送請(qǐng)求,S7-PLC分析請(qǐng)求,處理請(qǐng)求,向客戶機(jī)發(fā)送應(yīng)答。當(dāng)S7-PLC對(duì)上位機(jī)響應(yīng)時(shí),它使用功能碼來(lái)指示正常(無(wú)差錯(cuò))響應(yīng)或者出現(xiàn)某種差錯(cuò)(稱為異常響應(yīng))。對(duì)于一個(gè)正常響應(yīng)來(lái)說(shuō),S7-PLC僅復(fù)制原始功能碼。對(duì)于異常響應(yīng),S7-PLC將原始功能碼加0x80(即其字節(jié)的最高有效位設(shè)置邏輯1)后返回。請(qǐng)求報(bào)文用RQ數(shù)組表示,正常響應(yīng)的應(yīng)答報(bào)文用SN數(shù)組表示,異常響應(yīng)的應(yīng)答報(bào)文用EX數(shù)組表示,數(shù)組單位均為字節(jié)。各數(shù)組的第1、2個(gè)單元分別存貯事務(wù)元標(biāo)識(shí)符的高、低字節(jié),各數(shù)組的第3、4個(gè)單元分別存貯協(xié)議標(biāo)識(shí)符的高、低字節(jié)。各數(shù)組的第7個(gè)單元存貯單元標(biāo)識(shí)符SID。各數(shù)組的第5、6個(gè)單元分別存貯長(zhǎng)度的高、低字節(jié),因?yàn)殚L(zhǎng)度為余下域的字節(jié)數(shù),小于256,RQ、SN、EX為0,事務(wù)元標(biāo)識(shí)符和協(xié)議標(biāo)識(shí)符的值均為0,請(qǐng)求報(bào)文、正常響應(yīng)報(bào)文、異常響應(yīng)報(bào)文中前5字節(jié)值均為0,即RQ…RQ、SN…SN、EX…EX=0x00。分3種類型深入解析8種功能請(qǐng)求報(bào)文和正常應(yīng)答報(bào)文,并對(duì)異常響應(yīng)的應(yīng)答報(bào)文解析。(1)對(duì)于讀取數(shù)據(jù)功能報(bào)文,即功能碼FNC為0x01、0x02、0x03或0x04,請(qǐng)求報(bào)文的幀長(zhǎng)度為12個(gè)字節(jié),其余下域的字節(jié)數(shù)為6個(gè);正常應(yīng)答的幀長(zhǎng)度為B+9個(gè)字節(jié),其余下域的字節(jié)數(shù)為B+3個(gè)。B為實(shí)際數(shù)據(jù)(開關(guān)量或寄存器)的字節(jié)數(shù),D1…DB為從地址ADD開始需要讀取的B個(gè)實(shí)際數(shù)據(jù);QNT為實(shí)際數(shù)據(jù)(開關(guān)量或寄存器)的數(shù)量,QNTH為其高字節(jié),QNTL為其低字節(jié);ADD為讀取的起始地址,ADDH為其高字節(jié),ADDL為其低字節(jié)。功能碼FNC為0x01或0x02,是對(duì)輸出型或輸入型開關(guān)量進(jìn)行讀取操作,QNT為從地址ADD開始需要讀取的位數(shù)量,QNT在1~1920之間,其字節(jié)數(shù)為B=(QNT+7)/8;功能碼FNC為0x03或0x04,是對(duì)保持型或模擬輸入量型寄存器讀取操作,QNT在1~125之間,QNT為需要讀取從起始地址讀取寄存器數(shù)量,其字節(jié)數(shù)為B=2*QNT。請(qǐng)求報(bào)文的數(shù)據(jù)幀見表3,正常響應(yīng)的應(yīng)答報(bào)文數(shù)據(jù)幀見表4。(2)對(duì)單個(gè)開關(guān)輸出量或保持寄存器寫操作功能,即功能碼FNC為0x05或0x06,正常響應(yīng)報(bào)文與請(qǐng)求報(bào)文完全相同,報(bào)文幀長(zhǎng)度為12個(gè)字節(jié),余下域的字節(jié)數(shù)為6個(gè),對(duì)地址ADD的開關(guān)輸出量或保持寄存器的進(jìn)行寫操作。功能碼FUNC為0x05,是對(duì)單個(gè)開關(guān)輸出量寫操作,包括置位和復(fù)位兩種操作:對(duì)地址ADD的開關(guān)輸出量進(jìn)行置位操作請(qǐng)求(當(dāng)RQ=VDH=0xFF,同時(shí)RQ=VDL=0x00,即VD=0xFF00),對(duì)地址ADD開出位進(jìn)行復(fù)位操作請(qǐng)求(當(dāng)RQ=VDL=0x00,RQ=VDH=0x00,即VD=0x0000)。功能碼FUNC為0x06,是對(duì)單個(gè)保持寄存器寫操作,將VD賦值于地址為ADD的保持寄存器,VD為寫入寄存器的數(shù)值,VDH為其高字節(jié),VDL為低字節(jié)。請(qǐng)求和應(yīng)答報(bào)文數(shù)據(jù)幀見表5。(3)對(duì)多個(gè)開關(guān)輸出量或保持寄存器寫操作功能,即功能碼FNC為0x0F或0x10,請(qǐng)求報(bào)文的幀長(zhǎng)度為B+13個(gè)字節(jié),其余下域的字節(jié)數(shù)為B+7個(gè);正常應(yīng)答的幀長(zhǎng)度為12個(gè)字節(jié),其余下域的字節(jié)數(shù)為6個(gè)。B為實(shí)際數(shù)據(jù)(開關(guān)量或保持寄存器)的字節(jié)數(shù),VD1…VDB為需要從地址ADD開始寫入的B個(gè)實(shí)際數(shù)據(jù);QNT為實(shí)際數(shù)據(jù)(開關(guān)量或保持寄存器)的數(shù)量,QNTH為其高字節(jié),QNTL為其低字節(jié);ADD為讀取的起始地址,ADDH為其高字節(jié),ADDL為其低字節(jié)。功能碼FNC為0x0F,是對(duì)QNT個(gè)開關(guān)輸出量進(jìn)行寫入操作,QNT為從地址ADD開始需要寫入的位數(shù)量,QNT在1~1920之間,其字節(jié)數(shù)為B=(QNT+7)/8;功能碼FNC為0x10,是對(duì)QNT個(gè)保持寄存器寫入操作,QNT在1~125之間,QNT為地址ADD開始寫入的保持寄存器數(shù)量,其字節(jié)數(shù)為B=2*QNT。請(qǐng)求報(bào)文的數(shù)據(jù)幀見表6,正常應(yīng)答報(bào)文數(shù)據(jù)幀見表7。(4)異常應(yīng)答報(bào)文的幀長(zhǎng)度為9個(gè)字節(jié),余下域的字節(jié)數(shù)為3個(gè),功能碼EXF為原始功能碼FNC加0x80,異常碼EXC表明出錯(cuò)的原因。異常應(yīng)答報(bào)文見表8,異常碼0x01、0x02、0x03或0x0B分別表示S7-PLC分析請(qǐng)求報(bào)文時(shí)發(fā)現(xiàn)功能碼非法、地址非法、數(shù)值或數(shù)量非法和單元標(biāo)識(shí)符不一致,以及異常碼0x04表示S7-PLC進(jìn)行相應(yīng)操作過(guò)程中出現(xiàn)差錯(cuò)。3基于轉(zhuǎn)化應(yīng)用機(jī)理的通信程序架構(gòu)在S7-PLC的開關(guān)輸入量、開關(guān)輸出量和模擬輸入量硬件組態(tài)中同一類型按槽位順序連續(xù)地分配地址,保持寄存器由數(shù)據(jù)塊DB數(shù)據(jù)存儲(chǔ),將數(shù)據(jù)類型相同且地址連續(xù)的數(shù)據(jù)組塊傳送提高通信效率和可靠。FB和FC均是S7-PLC用戶程序中的子程序,若FC用于不同對(duì)象的相同功能時(shí)新編程序和修改程序,而FB不需要修改程序。對(duì)于不同對(duì)象FB程序調(diào)用,調(diào)用的程序相同,背景數(shù)據(jù)塊不同而已,F(xiàn)C沒(méi)有靜態(tài)變量,F(xiàn)B有保存在背景數(shù)據(jù)塊中的靜態(tài)變量。S7-PLC基于Modbus/TCP通信程序架構(gòu)如圖1所示,在通信程序架構(gòu)中,在S7-PLC作為服務(wù)器,通信程序由通信邏輯處理和通信接口兩部分組成,一個(gè)通信邏輯處理程序需要數(shù)個(gè)不同通信邏輯處理程序一起應(yīng)用,實(shí)現(xiàn)對(duì)開關(guān)輸入量、開關(guān)輸出量、模擬量輸入量、保持寄存器(四類數(shù)據(jù)以下稱物理數(shù)據(jù))的訪問(wèn)功能。一套S7-PLC含有數(shù)塊以太網(wǎng)模件,諸如S7-300/400PLC軟冗余系統(tǒng)和S7-400PLC硬冗余系統(tǒng),不僅需要調(diào)用多個(gè)通信邏輯處理程序,還需要調(diào)用多個(gè)通信邏輯處理程序,因此通信邏輯處理程序和通信接口程序采用FB程序。FB通過(guò)背景數(shù)據(jù)量傳遞的變量區(qū)有:輸入?yún)^(qū)(IN)、輸出區(qū)(OUT)、輸入輸出區(qū)(IN_OUT)和靜態(tài)變量區(qū)(STAT),其中IN、IN_OUT、OUT為接口參數(shù),直接體現(xiàn)在生成的FB塊左右兩側(cè),而STAT為內(nèi)部參數(shù)。通信接口程序在其不同背景數(shù)據(jù)塊中建立相應(yīng)存儲(chǔ)區(qū),通信接口程序?qū)⑽锢頂?shù)據(jù)按類型映射至其背景數(shù)據(jù)塊中存儲(chǔ)區(qū),通信接口程序在物理數(shù)據(jù)和通信邏輯處理程序中的靜態(tài)變量收發(fā)區(qū)進(jìn)行數(shù)據(jù)轉(zhuǎn)移作用,系統(tǒng)功能SFC59(RD_REC)和SFC58(WR_REC)數(shù)據(jù)記錄區(qū)以字節(jié)為單位,因此通信接口程序還將物理數(shù)據(jù)按字節(jié)進(jìn)行組塊。通信邏輯處理程序在其背景數(shù)據(jù)塊中建立相應(yīng)收發(fā)區(qū),在其背景數(shù)據(jù)塊中收發(fā)區(qū)從以太網(wǎng)模件CP接收Modbus/TCP請(qǐng)求報(bào)文,分析請(qǐng)求報(bào)文,并根據(jù)請(qǐng)求報(bào)文對(duì)通信接口程序中的靜態(tài)變量存貯區(qū)進(jìn)行訪問(wèn)操作,按規(guī)范將數(shù)據(jù)組成Modbus/TCP應(yīng)答報(bào)文,返回給以太網(wǎng)模件。4通信邏輯程序設(shè)計(jì)通信邏輯處理程序和通信接口程序采用SCL語(yǔ)言編寫,通信邏輯處理程序包含變量定義、讀取請(qǐng)求報(bào)文、分析報(bào)文、處理報(bào)文和發(fā)送響應(yīng)報(bào)文5部分。4.1.相關(guān)變量的定義服務(wù)器邏輯功能塊定義模件邏輯輸入地址(CP_LAD-DR)、模件連接標(biāo)識(shí)號(hào)(CONN_ID)等輸入變量,定義單元標(biāo)識(shí)(UnitID)、功能碼(FctCod)、起始地址(StrtAdd)、數(shù)量或數(shù)值(QntVal)、字節(jié)數(shù)(BytCnt)、收發(fā)數(shù)據(jù)區(qū)(MsgBUF)等靜態(tài)變量,定義發(fā)送數(shù)據(jù)的any指針(anySnd)、接收數(shù)據(jù)的any指針(anyRcv)等臨時(shí)變量。4.2讀取已讀取的文件文長(zhǎng)度為12個(gè)字對(duì)于上述8種功能碼,Modbus/TCP請(qǐng)求應(yīng)用數(shù)據(jù)報(bào)文總長(zhǎng)度均大于或等于12個(gè)字節(jié)。當(dāng)功能碼為0x10或0x0F時(shí),請(qǐng)求報(bào)文總長(zhǎng)度大于12個(gè)字節(jié),12個(gè)字節(jié)后數(shù)據(jù)域?yàn)閷懭腴_關(guān)輸出量或寄存器數(shù)據(jù)的字節(jié)數(shù)和寫入數(shù)據(jù),對(duì)于其它功能碼,請(qǐng)求應(yīng)用數(shù)據(jù)報(bào)文總長(zhǎng)度為12個(gè)字節(jié)。調(diào)用SFC59讀取首12個(gè)字節(jié)報(bào)文數(shù)據(jù)記錄,這12個(gè)字節(jié)數(shù)據(jù)不僅包含報(bào)文頭,還包含功能碼、寄存器或開關(guān)量的起始地址、數(shù)量或數(shù)值(QntVal)。當(dāng)功能碼為0x05或0x06時(shí),QntVal表示數(shù)值,對(duì)于其他功能碼,QntVal表示數(shù)量。4.3分析應(yīng)用程序請(qǐng)求的數(shù)據(jù)傳輸方式分析請(qǐng)求應(yīng)用數(shù)據(jù)報(bào)文包含判斷單元標(biāo)識(shí)符、判斷功能碼、判斷數(shù)量或數(shù)據(jù)和判斷地址范圍,若超出范圍,返回非法信息。4.4開關(guān)輸出量的置位當(dāng)功能碼為0x01、0x02、0x03或0x04時(shí),首先按規(guī)范組建應(yīng)答報(bào)文的首9個(gè)字節(jié)數(shù)據(jù),再?gòu)耐ㄐ沤涌诔绦虻臄?shù)據(jù)存儲(chǔ)區(qū)讀取數(shù)據(jù),并將數(shù)據(jù)存入應(yīng)答報(bào)文9個(gè)字節(jié)后的數(shù)據(jù)域組成應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū)。當(dāng)功能碼為0x05時(shí),對(duì)單個(gè)開關(guān)輸出量寫操作,當(dāng)QntVal為0xFF00時(shí),對(duì)起始地址的開關(guān)輸出量進(jìn)行置位操作,當(dāng)QntVal為0x0000時(shí),對(duì)起始地址的開關(guān)輸出量進(jìn)行復(fù)位操作。當(dāng)功能碼為0x06時(shí),將QntVal賦值予起始地址相應(yīng)的寄存器。對(duì)于功能碼為0x05或0x06,將12個(gè)字節(jié)請(qǐng)求報(bào)文不需修改存入應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū)。當(dāng)功能碼為0x0F時(shí),按位對(duì)開關(guān)輸出量相應(yīng)通信接口程序的存儲(chǔ)區(qū)操作,當(dāng)功能碼為0x10時(shí),按字對(duì)寄存器相應(yīng)通信接口程序的存儲(chǔ)區(qū)寫操作。當(dāng)功能碼為0x0F或0x10時(shí),首先通過(guò)SFC59從以太網(wǎng)模件讀取單字節(jié)的字節(jié)數(shù)BytCnt,再通過(guò)SFC59讀取BytCnt個(gè)字節(jié)數(shù)據(jù),并接收到的數(shù)據(jù)寫入相應(yīng)通信接口程序的存儲(chǔ)區(qū),操作成功后,將請(qǐng)求報(bào)文首12個(gè)字節(jié)中的長(zhǎng)度值更改為0x0006,并將修改后的12個(gè)字節(jié)數(shù)據(jù)存入應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū)。4.5異常應(yīng)收?qǐng)?bào)文應(yīng)用數(shù)據(jù)區(qū)的組建操作成功后,將anySnd指向正常應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū);報(bào)文有誤以及操作失敗,按規(guī)范組建相應(yīng)的異常應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū),同時(shí)將anySnd指向異常應(yīng)答報(bào)文應(yīng)用數(shù)據(jù)區(qū);調(diào)用系統(tǒng)功能SFC58將應(yīng)答報(bào)文發(fā)送至以太網(wǎng)模件。5工程應(yīng)用5.1plc硬件選型某水電廠采用基于Modbus/TCP協(xié)議的計(jì)算機(jī)監(jiān)控系統(tǒng),上位機(jī)采用NC2000監(jiān)控系統(tǒng)軟件,現(xiàn)地控制層采用SJ-500LCU裝置,LCU采用S7-PLC,見圖2。對(duì)于每套PLC,均需要設(shè)定站地址,Modbus/TCP協(xié)議報(bào)頭中單元標(biāo)識(shí)符來(lái)定義和區(qū)分各套PL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳品安全監(jiān)管體系構(gòu)建考核試卷
- 教育文具在遠(yuǎn)程教育中的應(yīng)用考核試卷
- 樂(lè)器批發(fā)商的品牌市場(chǎng)渠道開發(fā)考核試卷
- 家用換氣扇產(chǎn)業(yè)鏈協(xié)同創(chuàng)新發(fā)展模式與實(shí)踐考核試卷
- 城市軌道交通的非折返運(yùn)行與列車調(diào)度考核試卷
- 辦公自動(dòng)化軟件綜合應(yīng)用考核試卷
- 絲印染在體育用品上的獨(dú)特應(yīng)用考核試卷
- 智能設(shè)備多模態(tài)交互設(shè)計(jì)考核試卷
- 工傷案例培訓(xùn)課件
- 快手代運(yùn)營(yíng)合同范本
- 北京垃圾分類管理制度
- 人力資源招聘與企業(yè)培訓(xùn)培訓(xùn)資料
- 電工學(xué)(第8版)(上冊(cè) 電工技術(shù)) 課件全套 秦曾煌 第1-14章 電路的基本概念與基本定律- 傳感器
- 人員素質(zhì)測(cè)評(píng) 第2版 課件 第01章 人員素質(zhì)測(cè)評(píng)概論
- 垃圾滲濾液處理站運(yùn)維及滲濾液處理投標(biāo)方案(技術(shù)標(biāo))
- 【深度學(xué)習(xí)研究國(guó)內(nèi)外文獻(xiàn)綜述4000字(論文)】
- 二十六個(gè)英文字母教學(xué)課件
- 醫(yī)院上半年運(yùn)營(yíng)分析課件
- 別克林蔭大道說(shuō)明書
- 數(shù)學(xué)三分鐘演講
- 啟封密閉、排放瓦斯專項(xiàng)辨識(shí)
評(píng)論
0/150
提交評(píng)論