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