找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3327|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

使用Modbus協(xié)議建立S7-200與紫金橋軟件之間的通訊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107593 發(fā)表于 2016-3-11 01:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在使用西門子S7-200時,在不增加其它通訊接口模塊時,紫金橋?軟件可以通訊PPI協(xié)議與S7-200直接通訊。但這種通訊方式由于受通訊協(xié)議本身限制,在通訊數(shù)據(jù)較多時,通訊速度相對較慢,使用Modbus協(xié)議則通訊速度可以提高約一倍。下面就介紹一下怎么使用Modbus協(xié)議建立S7-200與紫金橋軟件之間的通訊:
硬件連接在使用Modbus協(xié)議時,計算機與S7-200之間通訊直接使用PPI通訊電纜即可。但如果通訊距離較遠(yuǎn),或者需要將多個S7-200連接到一個通訊總線上時,我們可以通過如下方法配制通訊鏈路。
  • 選配一個計算機通訊端口
        由于S7-200通訊端口物理層使用的是RS-485通訊規(guī)范,因此我們需要在計算機端增加一個RS-485通訊端口,才能與計算機通訊建立通訊。如果計算機閑置的串口,我們可以選配一個RS-232轉(zhuǎn)RS-484轉(zhuǎn)換器即可;如果沒有閑置的串口,我們通過在計算機中增加一個RS-485通訊卡也可以;現(xiàn)在很多計算機都有USB口,我們也可以在計算機上外接一個USB轉(zhuǎn)RS-485轉(zhuǎn)換器。
  • 連接通訊電纜
        S7-200的通訊端口是一個9孔(famel)D型插頭,針腳分布如下所示:

針腳
信號
1
地線 (RS-485 邏輯地)
2
24 V 地線 (RS-485 邏輯地)
3
信號B (RxD/TxD+)
4
RTS (TTL level)
5
地線 (RS-485 邏輯地)
6
(空)
7
24 V 電源
8
信號A (RxD/TxD-)
9
通訊選擇
S7-200通訊端口(端口0)與RS-485板卡或RS-485/RS-232轉(zhuǎn)換器之間接線,如下圖所示:
S7-200編程及設(shè)置        在缺省情況下S7-200的通訊端口是不支持Modbus協(xié)議的,要想實現(xiàn)Modbus通訊必需在PLC的主程序模塊中調(diào)用Modbus通訊子程序。Modbus通訊子程序可以從“STEP 7-Micro/WIN Add-On: Instruction Library (STEP 7-Micro/WIN附件:指令庫)”中獲得。在安裝了“STEP 7-Micro/WIN附件:指令庫”后,在導(dǎo)航樹“指令/庫”下面我們可以找到“Modbus Protocol”。在其下面包含了MBUS_INIT和MBUS_SLAVE兩個子程序,MBUS_INIT用于對Modbus通訊進(jìn)行初始化,MBUS_SLAVE用于在指定端口上提供Modbus從站通訊服務(wù)。下在介紹如何在主程序中調(diào)相關(guān)子程序及環(huán)境參數(shù)設(shè)置:
調(diào)用Modbus通訊初始化命令        首先為MBUS_INIT命令建立一個觸發(fā)條件(只觸發(fā)一次),如:SM0.1;從導(dǎo)航樹“指令/庫/ Modbus Protocol”下面,將MBUS_INIT指令拖拽到主程序塊中。再就是正確設(shè)置MBUS_INIT各項調(diào)用參數(shù)和執(zhí)行結(jié)果輸出地址,我們可以建立一下如下圖所示初始化調(diào)用過程:
Mode:協(xié)議類型,1-Modbus協(xié)議;0-PPI協(xié)議。
Addr: PLC地址,1~247,。
Baud: 通訊波特率,1200、2400、4800、9600、19200、38400、57600或11520。
Parity: 校驗方式,0-無校驗;1-奇數(shù)校驗;2-偶數(shù)校驗。
Delay:信息結(jié)束超時時間,0~32767,有線連接設(shè)置為0即可。
MaxIQ:0~128,映射在離散輸入寄存器或離散輸出寄存器中的I或Q數(shù)。建議為:128。
MaxAI:0~32;映射在模擬輸入寄存器中AIW數(shù);CPU 221為0,CPU 222為16,CPU 224、226和226XM為32。
MaxHold:V內(nèi)存映射在保持寄存器中的寄存器數(shù)。
HoldStart:V內(nèi)存的映射時的起始地址。
Done:初始化指完成時,輸出為開狀態(tài);開關(guān)量(Bit)。
Error:初始化錯誤代碼,請參閱Modbus從機協(xié)議執(zhí)行錯誤代碼;輸出為字節(jié)。
調(diào)用Modbus從機通訊命令        初始化完成后,就可以調(diào)用Modbus從機通訊命令(MBUS_SLAVE)了。通常Modbus從機通訊命令在主程序塊的每個執(zhí)行周期都要初執(zhí)行(始終保持通訊狀態(tài)),因為可以用一個常開量作為命令的觸發(fā)條件,如:SM0.0。從導(dǎo)航樹“指令/庫/ Modbus Protocol”下面,將MBUS_SLAVE指令拖拽到主程序塊中。調(diào)用過程如下圖所示:
Done: 當(dāng)MBUS_SLAVE指令響應(yīng)對Modbus請求時,"Done"為開狀態(tài)。沒通訊請求時"Done"為關(guān)狀態(tài)。
Error:指令執(zhí)行結(jié)果。只有"Done"為開狀態(tài)時,此狀態(tài)有效。請參閱Modbus從機協(xié)議執(zhí)行錯誤代碼;輸出為字節(jié)。
庫存儲區(qū)分配        在完成前面兩個指令調(diào)用后,還要為庫指令使用的符號分配內(nèi)存。當(dāng)庫指令被插入到主程序塊中,在導(dǎo)航樹“程序塊”下會出現(xiàn)一個“庫”節(jié)點。在“庫”節(jié)點上點擊鼠標(biāo)右鍵,在彈出菜單中選擇“庫存儲區(qū)”,進(jìn)入“庫存儲區(qū)分配”對話框。

        在地址框中輸入分配內(nèi)存的開始地址,或者通過點擊“建議地址”按鈕自動分配內(nèi)存。注意,分配的內(nèi)存不要與已使用的內(nèi)存重疊。
紫金橋軟件組態(tài)        完成PLC編程和配制后,還要對紫金橋軟件進(jìn)行配制,這樣才能獲取、處理、查測、存儲和顯示相應(yīng)的數(shù)據(jù)。組態(tài)過程分為兩個步驟:(1)設(shè)備組態(tài),即建立一個與PLC相對應(yīng)的邏輯設(shè)備;(2)點組態(tài),即建立過程數(shù)據(jù)庫點的過程參量與PLC中變量的對應(yīng)關(guān)系,從而利用點的自身功能進(jìn)行處理、檢測和存儲。當(dāng)然要將過程數(shù)據(jù)在計算機上展現(xiàn)給用戶,還要進(jìn)行交互界面(窗口)組態(tài)。但這一過程對所有應(yīng)用是相同這,這里就不介紹了。
設(shè)備組態(tài)設(shè)備組態(tài)就根據(jù)PLC使用的通訊協(xié)議及在網(wǎng)上的節(jié)點地址、端口屬性等對通訊參數(shù)進(jìn)行定義的過程。
進(jìn)入紫金橋開發(fā)環(huán)境,將導(dǎo)航樹切換到“數(shù)據(jù)庫”,在導(dǎo)航樹上選擇“設(shè)備驅(qū)動/MODBUS/
MODBUS(ASCII&RTU串口通訊)”,單擊鼠標(biāo)右鍵,在單出菜單中選擇“增加設(shè)備驅(qū)動”會彈出發(fā)下所示對話框:

        在對話框中輸入設(shè)備名稱、設(shè)備地址(與PLC中MBUS_INIT初始化的Addr參數(shù)一致),選擇串口號,并且設(shè)置(點擊“設(shè)置”按鈕)端口屬性,使用它與PLC中MBUS_INIT命令設(shè)置的屬性一致。點擊“下一步”:
        在Modbus設(shè)備定義對話框中將協(xié)議類型選擇為“RTU”,存貯器類型選擇“32位”(即長整和浮點型4字節(jié)的數(shù)據(jù)的傳送格式為高位在前,低位在后)。單擊“完成”按鈕,則設(shè)備組態(tài)完成。
點組態(tài)及I/O連接完成了點組態(tài)還要進(jìn)行點組態(tài)I/O連接,這樣才能將PLC中的變量映射到紫金橋軟件中。
進(jìn)入紫金橋開發(fā)環(huán)境,將導(dǎo)航樹切換到“數(shù)據(jù)庫”,在導(dǎo)航樹上雙擊“點組態(tài)”,進(jìn)入點組窗口:
選擇點類型,建點,設(shè)置常規(guī)參數(shù)是點組態(tài)的基本操作,對所有應(yīng)用是相同的,這里就不詳細(xì)說明了。下面重點介紹一下I/O連接及與變量對應(yīng)關(guān)系。
這里以模擬I/O點的I/O連接為例。新建一個模擬I/O點后,輸入點名,切換到“數(shù)據(jù)連接”屬性頁:
從該屬性的設(shè)備列表框中選擇在上一步驟中建立的設(shè)備(如:MOD),點擊“增加連接項”按鈕,進(jìn)入“Modbus組點對話框”:
        這里的“內(nèi)存區(qū)”、“偏置”和“數(shù)據(jù)格式”是與PLC中部分內(nèi)存類型和地址相對應(yīng)的。對于在Modbus協(xié)議中不能對應(yīng)的PLC內(nèi)存類型,如果需要上傳到過程數(shù)據(jù)庫中,可以先它們先移動到V內(nèi)存區(qū),再通過V內(nèi)存區(qū)讀取。S7-200內(nèi)存區(qū)與紫金橋I/O連接對應(yīng)關(guān)系如下所示:



S7-200地址
紫金橋軟件I/O連接
內(nèi)存區(qū)
偏置
Q0.0
DO離散輸出量
0
Q0.1
1
Q0.2
2
……(Qm.n)
……(m*16+n)
Q15.6
126
Q15.7
127
I0.0
DI離散輸入量
0
I0.1
1
I0.2
2
……(Im.n)
……(m*16+n)
I15.6
126
I15.7
127
AIW0
AR輸入寄存器
0
AIW2
1
AIW4
2
……(AIW2n)
……(n)
AIW62
31
Hold Start(如:VB0)

0
Hold Start+2(如:VB2)

1
Hold Start+4(如:VB4)

2
……

……
Hold Start+(HoldMax-1)*2

HoldMax-1
在完成存貯區(qū)和地址組態(tài),還要注意一點就是數(shù)據(jù)類型一致性,只有類型一致才能從PLC上獲得正確數(shù)據(jù)。我們可以從“數(shù)據(jù)格式”中選擇格式。對于字寄存器我們也可以將它拆分為位,從而獲得某個位的狀態(tài)。
注:對新組態(tài)的數(shù)據(jù)庫點只有重新啟動后才會生效。
以上是對通過Modbus協(xié)議在紫金橋軟件中獲取S7-200 PLC數(shù)據(jù)的使用方法的簡單介紹,希望對大家使用紫金橋有所幫助。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表