臨汾西門子S7-1200代理商 ? 臨汾西門子S7-1200代理商
可編程控制器
上海邑斯公司優(yōu)勢(shì)產(chǎn)品; PLC?、觸摸屏、變頻器、電纜及通訊卡、數(shù)控系統(tǒng)、網(wǎng)絡(luò)接頭、伺服驅(qū)動(dòng)、??凡在公司采購(gòu)西門子產(chǎn)品,均可質(zhì)保一年,假一罰十
?????????以滿足客戶的需求為宗旨?,??以誠(chéng)為本??,??精益求精
聯(lián)系人:陳工 |
傳真:021-57710796 |
24小時(shí)咨詢熱線:131-3509-9996??上海邑斯竭誠(chéng)為您服務(wù) 24小時(shí)咨詢熱線:175-2162-1537??上海邑斯竭誠(chéng)為您服務(wù) |
|
工作QQ:1278265719 |
??????質(zhì)量的保證,是我司的追求 |
|
Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議。
ModBus網(wǎng)絡(luò)是一個(gè)工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計(jì)算機(jī)通過(guò)公用線路或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過(guò)程監(jiān)控。
ModBus網(wǎng)絡(luò)只有一個(gè)主機(jī),所有通信都由他發(fā)出。網(wǎng)絡(luò)可支持247個(gè)之多的遠(yuǎn)程從屬控制器,但實(shí)際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定。采用這個(gè)系統(tǒng),各PC可以和中心主機(jī)交換信息而不影響各PC執(zhí)行本身的控制任務(wù)。
?
1 MODBUS RTU協(xié)議在S7-200中的應(yīng)用原理
1.1 MODBUSRTU協(xié)議與S7-200相互關(guān)系簡(jiǎn)介
??? S7-200 CPU上的通訊口Port0可以支持MODBUS RTU協(xié)議,成為MODBUS RTU從站。此功能是通過(guò)S7-200的自由口通訊模式實(shí)現(xiàn),因此可以通過(guò)無(wú)線數(shù)據(jù)電臺(tái)等慢速通訊設(shè)備傳輸。
想在S7-200 CPU與其他支持MODBUS RTU的設(shè)備使用MODBUS RTU協(xié)議通訊,需要由有S7-200 CPU做MODBUS主站。S7-200 CPU做主站必須由用戶自己用自由口模式,按相關(guān)協(xié)議編程。
2?從站指令的用法:
??? S7-200控制系統(tǒng)應(yīng)用中,MODBUS RTU從站指令庫(kù)只支持CPU上的通訊0口(Port0)。要實(shí)現(xiàn)MODBUS RTU通訊,需要Step7-Micro/WIN32V3.2以上版本的編程軟件,而且須安裝Step7-Micro/WIN32V3.2 Instruction Library(指令庫(kù))。MODBUS RTU功能是通過(guò)指令庫(kù)中預(yù)先編好的程序功能塊實(shí)現(xiàn)的。
MODBUSRTU協(xié)議在S7-200中應(yīng)用的基本過(guò)程
(1)?首先檢查S7-200控制系統(tǒng)中所用Micro/WIN軟件版本,應(yīng)當(dāng)是Step7-Micro/WIN V3.2以上版本。
(2)?檢查Micro/WIN的指令樹中是否存在MODBUSRTU從站指令庫(kù)(圖1),庫(kù)中應(yīng)當(dāng)包括MBUS_INIT和MBUS_SLAVE兩個(gè)子程序。如果沒(méi)有,須安裝Micro/WIN32V3.2 Instruction Library(指令庫(kù))軟件包
編程時(shí)使用SM0.1—調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用SM0.0—調(diào)用研究MBUS_SLAVE,并指定相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說(shuō)明,可在子程序的局部變量表中找到。
調(diào)用MODBUS通訊指令庫(kù)
參數(shù)意義如下:?
●模式選擇:啟動(dòng)/停止MODBUS,1=啟動(dòng);0=停止;
●?從站地址:MODBUS從站址,取值1~247;
●?波特率:可選1200,2400,4800,9600,19200,38400,57600;
●?奇偶校驗(yàn):0=無(wú)校驗(yàn);1=奇校驗(yàn);2=偶校驗(yàn);?
●?延時(shí):附加字符間延時(shí),缺省值為0;?
●?大I/Q位:參與通訊的大I/O點(diǎn)數(shù),S7-200I/O映像區(qū)為128/128,缺省值為128;
●?大AI字?jǐn)?shù):參與通訊的大AI通道數(shù),可為16或32;
●?大保持寄存器區(qū):參與通訊的V存儲(chǔ)區(qū)字(VW);
●?保持寄存器區(qū)起始址:以&VBx指定(間接尋址方式);
●?初始化完成標(biāo)志:成功初始化后置1;?
●?錯(cuò)誤代碼:0=無(wú)錯(cuò)誤。
1.3?注意的問(wèn)題
????調(diào)用Step7-Mciro/WIN32 V3.2 Instruction Library(指令庫(kù))需要分配庫(kù)指令數(shù)據(jù)區(qū)(LibraryMemory)。庫(kù)指令數(shù)據(jù)區(qū)是相應(yīng)庫(kù)子程序和中斷程序所要用到變量存儲(chǔ)空間。編程時(shí)不分配庫(kù)指令數(shù)據(jù)區(qū),編譯時(shí)會(huì)產(chǎn)生許多相同的錯(cuò)誤。
由子程序參數(shù)HoldStart和MaxHold指定保持寄存器區(qū),是S7-200 CPUV數(shù)據(jù)存儲(chǔ)區(qū)中分配,此數(shù)據(jù)區(qū)不能和庫(kù)指令數(shù)據(jù)區(qū)有任何重疊,否則運(yùn)行時(shí)會(huì)產(chǎn)生錯(cuò)誤,不能正常通訊。注意MODBUS?中保持寄存器區(qū)按“字”尋址,即MaxHold規(guī)定是VW而VB個(gè)數(shù)。
3?主站指令的用法:
1. MODBUS RTU?主站指令庫(kù)的功能是通過(guò)在用戶程序中調(diào)用預(yù)先編好的程序功能塊實(shí)現(xiàn)的,該庫(kù)對(duì)?Port 0?和?Port 1?有效。該指令庫(kù)將設(shè)置通信口工作在自由口模式下。
2. MODBUS RTU?主站指令庫(kù)使用了一些用戶中斷功能,編其他程序時(shí)不能在用戶程序中禁止中斷。
3. MODBUS RTU?主站庫(kù)對(duì)CPU的版本有要求。CPU?的版本必須為?2.00?或者?2.01(即訂貨號(hào)為?6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的?S7-200 CPU?不支持。
使用?MODBUS RTU?主站指令庫(kù),可以讀寫?MODBUS RTU?從站的數(shù)字量、模擬量?I/O?以及保持寄存器。
要使用?MODBUS RTU?主站指令庫(kù),須遵循下列步驟:
安裝西門子標(biāo)準(zhǔn)指令庫(kù)
按照要求編寫用戶程序調(diào)用?MODBUS RTU?主站指令庫(kù)
?
MODBUSRTU?主站功能編程
1.?調(diào)用?MODBUS RTU?主站初始化和控制子程序
使用?SM0.0?調(diào)用?MBUS_CTRL?完成主站的初始化,并啟動(dòng)其功能控制:
用?SM0.0?調(diào)用?MODBUS RTU?主站初始化與控制子程序
各參數(shù)意義如下:
a.??????EN?使能:必須保證每一掃描周期都被使能(使用?SM0.0)
b. Mode?模式:?為?1?時(shí),使能?MODBUS?協(xié)議功能;為?0?時(shí)恢復(fù)為系統(tǒng)?PPI?協(xié)議
c. Baud?波特率:?支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。
d. Parity?校驗(yàn):?校驗(yàn)方式選擇
0=無(wú)校驗(yàn)
1=奇較驗(yàn)
2=偶較驗(yàn)
e. Timeout?超時(shí):?主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為?1000?毫秒(1?秒),允許設(shè)置的范圍為?1 - 32767。
注意:?這個(gè)值必須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。
f. Done?完成位:?初始化完成,此位會(huì)自動(dòng)置1??梢杂迷撐粏?dòng)?MBUS_MSG?讀寫操作(見例程)
g. Error?初始化錯(cuò)誤代碼(只有在?Done?位為1時(shí)有效):
0=?無(wú)錯(cuò)誤
1=?校驗(yàn)選擇非法
2=?波特率選擇非法
3=?模式選擇非法
2.?調(diào)用?MODBUS RTU?主站讀寫子程序MBUS_MSG,發(fā)送一個(gè)MODBUS請(qǐng)求;
調(diào)用MODBUS RTU?主站讀寫子程序
各參數(shù)意義如下:
a.??????EN?使能:同一時(shí)刻只能有一個(gè)讀寫功能(即?MBUS_MSG)使能
注意:建議每一個(gè)讀寫功能(即?MBUS_MSG)都用上一個(gè)?MBUS_MSG?指令的?Done?完成位來(lái)激活,以保證所有讀寫指令循環(huán)進(jìn)行(見例程)。?
b. First?讀寫請(qǐng)求位:?每一個(gè)新的讀寫請(qǐng)求必須使用脈沖觸發(fā)?
c. Slave?從站地址:?可選擇的范圍?? 1 - 247
d. RW?從站地址:?0?=?讀,?1?=寫
注意:
1.?開關(guān)量輸出和保持寄存器支持讀和寫功能
2.?開關(guān)量輸入和模擬量輸入只支持讀功能
e. Addr?讀寫從站的?選擇讀寫的數(shù)據(jù)類型
數(shù)據(jù)地址:?00001?至?0xxxx -?開關(guān)量輸出
10001?至?1xxxx -?開關(guān)量輸入
30001?至?3xxxx -?模擬量輸入
40001?至?4xxxx -?保持寄存器
f. Count?數(shù)據(jù)個(gè)數(shù)?通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù))
注意:?MODBUS主站可讀/寫的大數(shù)據(jù)量為120個(gè)字(是指每一個(gè)?MBUS_MSG?指令)
g. DataPtr?數(shù)據(jù)指針:
1.?如果是讀指令,讀回的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中
2.?如果是寫指令,要寫出的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中
h. Done?完成位?讀寫功能完成位
i. Error?錯(cuò)誤代碼:?只有在?Done?位為1時(shí),錯(cuò)誤代碼才有效
0?=?無(wú)錯(cuò)誤
1?=?響應(yīng)校驗(yàn)錯(cuò)誤
2?=?未用
3?=?接收超時(shí)(從站無(wú)響應(yīng))
4?=?請(qǐng)求參數(shù)錯(cuò)誤(slave address, MODBUS address, count, RW)
5?=?MODBUS/自由口未使能?
6?=?MODBUS正在忙于其它請(qǐng)求
7?=?響應(yīng)錯(cuò)誤(響應(yīng)不是請(qǐng)求的操作)
8?=?響應(yīng)CRC校驗(yàn)和錯(cuò)誤
臨汾西門子S7-1200代理商 ? 臨汾西門子S7-1200代理商