93329737
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 23 個(gè)
工控威望: 188 點(diǎn)
下載積分: 524 分
在線時(shí)間: 18(小時(shí))
注冊(cè)時(shí)間: 2009-04-14
最后登錄: 2024-08-27
查看93329737的 主題 / 回貼
樓主  發(fā)表于: 2010-11-10 14:42
西門(mén)子的USS通訊,無(wú)需使用特殊硬件,PLC與變頻器都有繼承的串口,簡(jiǎn)單,價(jià)廉。如果要使用總線的話(huà),就需要額外使用通訊卡或適配器。
PLC 與驅(qū)動(dòng)裝置連接,主要實(shí)現(xiàn)的任務(wù)是:
控制驅(qū)動(dòng)裝置的啟動(dòng)、停止等運(yùn)行狀態(tài)
控制驅(qū)動(dòng)裝置的轉(zhuǎn)速等參數(shù)
獲取驅(qū)動(dòng)裝置的狀態(tài)和參數(shù)

S7-200 和西門(mén)子傳動(dòng)裝置主要可以通過(guò)以下幾種方式連接在一起工作:
S7-200 通過(guò)數(shù)字量(DI/DO)信號(hào)控制驅(qū)動(dòng)裝置的運(yùn)行狀態(tài)和速度
S7-200 通過(guò)數(shù)字量信號(hào)控制驅(qū)動(dòng)裝置的運(yùn)行狀態(tài);通過(guò)模擬量(AI/AO)信號(hào)控制轉(zhuǎn)速等參數(shù)
S7-200 通過(guò)串行通信控制驅(qū)動(dòng)裝置的運(yùn)行和各種參數(shù)
****************************************************************************************************

由于題目的需要,那就使用“S7-200 通過(guò)串行通信控制驅(qū)動(dòng)裝置的運(yùn)行 ”,也就是控制啟停。
S7-200 CPU 將在 USS 通信中作為主站。而變頻器則為USS從站。
當(dāng)S7-200的編程軟件為V4.0 SP5以上的話(huà),就包括USS協(xié)議指令庫(kù),以下介紹通過(guò)西門(mén)子提供的 USS 指令庫(kù)與 MM 440 之間的串行通信控制。
1、關(guān)于指令庫(kù)
        見(jiàn)下圖,就是安裝了USS協(xié)議指令庫(kù)的指令樹(shù)。

西門(mén)子的標(biāo)準(zhǔn) USS 協(xié)議庫(kù)以淺藍(lán)色圖標(biāo)表示。如果未找到淺藍(lán)色圖標(biāo)的指令庫(kù),說(shuō)明系統(tǒng)中沒(méi)有安裝西門(mén)子標(biāo)準(zhǔn)指令庫(kù)。必須先安裝標(biāo)準(zhǔn)指令庫(kù)。
2、USS 初始化指令
        西門(mén)子的 S7-200 USS 標(biāo)準(zhǔn)指令庫(kù)包括 14 個(gè)子程序和 3 個(gè)中斷服務(wù)程序。但是只有 8 個(gè)指令可供用戶(hù)使用。一些子程序和所有中斷服務(wù)程序都在調(diào)用相關(guān)的指令后自動(dòng)起作用。每個(gè) USS 庫(kù)應(yīng)用都要先進(jìn)行 USS 通信的初始化。使用 USS_INIT 指令初始化 USS 通信功能。

打開(kāi) USS 指令庫(kù)分支,像調(diào)用子程序一樣調(diào)用 USS_INIT 指令。

上圖中:
a. EN: 初始化程序 USS_INIT 只需在程序中執(zhí)行一個(gè)周期就能改變通信口的功能,以及進(jìn)行其他一些必要的初始設(shè)置,因此可以使用 SM0.1 或者沿觸發(fā)的接點(diǎn)調(diào)用 USS_INIT 指令;
b. Mode: 模式選擇,執(zhí)行 USS_INIT 時(shí) ,Mode 的狀態(tài)決定 是否在 Port 0 上使用 USS 通信功能;
      = 1 設(shè)置 Port 0 為 USS 通信協(xié)議并進(jìn)行相關(guān)初始化
         0 恢復(fù) Port 0 為 PPI 從站模式
c. Baud: USS 通信波特率。此參數(shù)要和變頻器的參數(shù)設(shè)置一致;
      = 2400   2400 bit/s  
         4800   4800 bit/s  
        9600    9600 bit/s  
        19200 19200 bit/s  
        38400  38400 bit/s  
        57600 57600 bit/s  
     115200 115200 bit/s  
d. Active: 此參數(shù)決定網(wǎng)絡(luò)上的哪些 USS 從站在通信中有效。詳見(jiàn)下面的說(shuō)明;
e. Done: 初始化完成標(biāo)志
f. Error: 初始化錯(cuò)誤代碼

Active 參數(shù)   USS_INIT 子程序的 Active 參數(shù)用來(lái)表示網(wǎng)絡(luò)上哪些 USS 從站要被主站訪問(wèn),即在主站的輪詢(xún)表中激活。網(wǎng)絡(luò)上作為 USS 從站的驅(qū)動(dòng)裝置每個(gè)都有不同的 USS 協(xié)議地址,主站要訪問(wèn)的驅(qū)動(dòng)裝置,其地址必須在主站的輪詢(xún)表中激活。USS_INIT 指令只用一個(gè) 32 位長(zhǎng)的雙字來(lái)映射 USS 從站有效地址表,Active 的無(wú)符號(hào)整數(shù)值就是它在指令輸入端的取值。

在上表中的這個(gè) 32 位的雙字中,每一位的位號(hào)表示 USS 從站的地址號(hào);要在網(wǎng)絡(luò)中激活某地址號(hào)的驅(qū)動(dòng)裝置,則需要把相應(yīng)位號(hào)的位置設(shè)為二進(jìn)制“1",不需要激活 USS 從站,相應(yīng)的位設(shè)置為”0"。最后對(duì)此雙字取無(wú)符號(hào)整數(shù)就可以得出 Active 參數(shù)的取值。
將使用站地址為 3 的 MM 440 變頻器,則須在位號(hào)為 03 的位單元格中填入二進(jìn)制“1"。其他不需要激活的地址 對(duì)應(yīng)的位設(shè)置為”0"。取整數(shù),計(jì)算出的 Active 值為 00000008 h,即 16#00000008,也等于十進(jìn)制數(shù) 8(如調(diào)用 USS_INIT 指令中的 d)
我一般都是使用 16 進(jìn)制數(shù),這樣可以每 4 位一組進(jìn)行加權(quán)計(jì)算出 16 進(jìn)制數(shù),并組合成一個(gè)整數(shù)。 如果一時(shí)難以計(jì)算出有多個(gè) USS 從站配置情況下的 Active 值,可以使用 Windows 自帶的計(jì)算器。將其設(shè)置為科學(xué)計(jì)算器模式,可以方便地轉(zhuǎn)換數(shù)制。

3、分配庫(kù)存儲(chǔ)區(qū)地址

指令庫(kù)或者向?qū)Ф家蠓峙鋷?kù)存儲(chǔ)區(qū)地址,這也是使用西門(mén)子200容易忽略的步驟。

USS 指令庫(kù)需要大概 400 個(gè)字節(jié)的 V 存儲(chǔ)區(qū)用于支持其工作。調(diào)用 USS_INIT 指令后就可以為 USS 指令庫(kù)分配庫(kù)存儲(chǔ)區(qū)。也可以在編程的稍后階段分配存儲(chǔ)區(qū)地址,但這一步是必不可少的,否則程序無(wú)法通過(guò)編譯。注意: S7-200 中的數(shù)據(jù)存儲(chǔ)區(qū)分配原則,分配給庫(kù)指令的數(shù)據(jù)區(qū)絕對(duì)不能與其他程序使用的數(shù)據(jù)區(qū)有任何重疊。否則會(huì)造成出錯(cuò)。



在指令樹(shù)的Project(項(xiàng)目)中,以鼠標(biāo)右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。如下圖所示:




4、USS 驅(qū)動(dòng)裝置控制功能塊
USS_CTRL 指令用于對(duì)單個(gè)驅(qū)動(dòng)裝置進(jìn)行運(yùn)行控制。這個(gè)功能塊利用了 USS 協(xié)議中的 PZD 數(shù)據(jù)傳輸,控制和反饋信號(hào)更新較快。

網(wǎng)絡(luò)上的每一個(gè)激活的 USS 驅(qū)動(dòng)裝置從站,都要在程序中調(diào)用一個(gè)獨(dú)占的 USS_CTRL 指令,而且只能調(diào)用一次。需要控制的驅(qū)動(dòng)裝置必須在 USS 初始化指令運(yùn)行時(shí)定義為“激活”。




在 USS 通信指令庫(kù)分支中選擇 USS_CTRL 指令



上圖中:

a. EN: 使用 SM0.0 使能 USS_CTRL 指令
b. RUN: 驅(qū)動(dòng)裝置的啟動(dòng)/停止控制
= 0 停止
1 運(yùn)行
此停車(chē)是按照驅(qū)動(dòng)裝置中設(shè)置的斜坡減速指電機(jī)停止
c. OFF2: 停車(chē)信號(hào) 2。此信號(hào)為“1"時(shí),驅(qū)動(dòng)裝置將封鎖主回路輸出,電機(jī)自由停車(chē)
d. OFF3: 停車(chē)信號(hào) 3。此信號(hào)為”1"時(shí),驅(qū)動(dòng)裝置將快速停車(chē)
e. F_ACK: 故障確認(rèn)。當(dāng)驅(qū)動(dòng)裝置發(fā)生故障后,將通過(guò)狀態(tài)字向 USS 主站報(bào)告;如果造成故障的原因排除,可以使用此輸入端清除驅(qū)動(dòng)裝置的報(bào)警狀態(tài),即復(fù)位。注意這是針對(duì)驅(qū)動(dòng)裝置的操作。
f. DIR: 電機(jī)運(yùn)轉(zhuǎn)方向控制。其“0/1”狀態(tài)決定運(yùn)行方向
g.Drive: 驅(qū)動(dòng)裝置在 USS 網(wǎng)絡(luò)上的站號(hào)。從站必須先在初始化時(shí)激活才能進(jìn)行控制
h.Type: 向 USS_CTRL 功能塊指示驅(qū)動(dòng)裝置類(lèi)型
= 0 MM 3 系列,或更早的產(chǎn)品
1 MM 4 系列,SINAMICS G 110


i. Speed_SP: 速度設(shè)定值。速度設(shè)定值必須是一個(gè)實(shí)數(shù),給出的數(shù)值是變頻器的頻率范圍百分比還是絕對(duì)的頻率值取決于變頻器中的參數(shù)設(shè)置(如 MM 440 的 P2009)
j. Resp_R: 從站應(yīng)答確認(rèn)信號(hào)。主站從 USS 從站收到有效的數(shù)據(jù)后,此位將為“1"一個(gè)程序掃描周期,表明以下的所有數(shù)據(jù)都是最新的
k. Error: 錯(cuò)誤代碼。0 = 無(wú)出錯(cuò)。其他錯(cuò)誤代碼請(qǐng)參考
l. Status: 驅(qū)動(dòng)裝置的狀態(tài)字。此狀態(tài)字直接來(lái)自驅(qū)動(dòng)裝置的狀態(tài)字,表示了當(dāng)時(shí)的實(shí)際運(yùn)行狀態(tài)

詳細(xì)的狀態(tài)字信息意義請(qǐng)參考相應(yīng)的驅(qū)動(dòng)裝置手冊(cè)。


m. Speed: 驅(qū)動(dòng)裝置返回的實(shí)際運(yùn)轉(zhuǎn)速度值,實(shí)數(shù)。是否頻率值跟隨設(shè)定值的規(guī)格化設(shè)定
n. Run_EN: 運(yùn)行模式反饋,表示驅(qū)動(dòng)裝置是運(yùn)行(為 1)還是停止(為 0)
o. D_Dir: 指示驅(qū)動(dòng)裝置的運(yùn)轉(zhuǎn)方向,反饋信號(hào)
p. Inhibit: 驅(qū)動(dòng)裝置禁止?fàn)顟B(tài)指示(0 - 未禁止,1 - 禁止?fàn)顟B(tài))。禁止?fàn)顟B(tài)下驅(qū)動(dòng)裝置無(wú)法運(yùn)行。要清除禁止?fàn)顟B(tài),故障位必須復(fù)位,并且 RUN, OFF2 和 OFF3 都為 0
q. Fault: 故障指示位(0 - 無(wú)故障,1 - 有故障)。表示驅(qū)動(dòng)裝置處于故障狀態(tài),驅(qū)動(dòng)裝置上會(huì)顯示故障代碼(如果有顯示裝置)。要復(fù)位故障報(bào)警狀態(tài),必須先消除引起故障的原因,然后用 F_ACK 或者驅(qū)動(dòng)裝置的端子、或操作面板復(fù)位故障狀態(tài)。



USS_CTRL 已經(jīng)能完成基本的驅(qū)動(dòng)裝置控制,如果需要有更多的參數(shù)控制選項(xiàng),可以選用 USS 指令庫(kù)中的參數(shù)讀寫(xiě)指令實(shí)現(xiàn)。


5、MM 440 的參數(shù)設(shè)置

5.1 控制源參數(shù)設(shè)置
控制命令控制驅(qū)動(dòng)裝置的啟動(dòng)、停止、正/反轉(zhuǎn)等功能?刂圃磪(shù)設(shè)置決定了驅(qū)動(dòng)裝置從何種途徑接受控制信號(hào)。

控制源由參數(shù) P0700 設(shè)置,選擇5






5.2 設(shè)定源控制參數(shù)
設(shè)定值控制驅(qū)動(dòng)裝置的轉(zhuǎn)速/頻率等功能。設(shè)定源參數(shù)決定了驅(qū)動(dòng)裝置從哪里接受設(shè)定值(即給定)。

設(shè)定源由參數(shù) P1000 設(shè)置:同樣選擇5




5.3 USS 通信控制的參數(shù)設(shè)置


主要參數(shù)有:

1. P0700: 設(shè)置 P0700[0] = 5,即控制源來(lái)自 COM Link 上的 USS 通信
2. P1000: 設(shè)置 P1000[0] = 5,即設(shè)定源來(lái)自 COM Link 上的 USS 通信
3. P2009: 決定是否對(duì) COM Link 上的 USS 通信設(shè)定值規(guī)格化,即設(shè)定值將是運(yùn)轉(zhuǎn)頻率的百分比形式,還是絕對(duì)頻率值

= 0 不規(guī)格化 USS 通信設(shè)定值,即設(shè)定為變頻器中的頻率設(shè)定范圍的百分比形式。
1 對(duì) USS 通信設(shè)定值進(jìn)行規(guī)格化,即設(shè)定值為絕對(duì)的頻率數(shù)值。


4. P2010: 設(shè)置 COM Link 上的 USS 通信速率。根據(jù) S7-200 通信口的限制,支持的通信波特率有:

= 4 2400 bit/s
5 4800 bit/s
6 9600 bit/s
7 19200 bit/s
8 38400 bit/s
9 57600 bit/s
12 115200 bit/s


5. P2011: 設(shè)置 P2011[0] = 0 至 31,即驅(qū)動(dòng)裝置 COM Link 上的 USS 通信口在網(wǎng)絡(luò)上的從站地址。

USS 網(wǎng)絡(luò)上不能有任何兩個(gè)從站的地址相同。


6. P2012: 設(shè)置 P2012[0] = 2,即 USS PZD 區(qū)長(zhǎng)度為 2 個(gè)字長(zhǎng)。
7. P2013: 設(shè)置 P2013[0] = 127,即 USS PKW 區(qū)的長(zhǎng)度可變。
8. P2014: 設(shè)置 P2014[0] = 0 至 65535,即 COM Link 上的 USS 通信控制信號(hào)中斷超時(shí)時(shí)間,單位為 ms。如設(shè)置為 0,則不進(jìn)行此端口上
的超時(shí)檢查。
此通信控制信號(hào)中斷,指的是接收到的對(duì)本裝置有效通信報(bào)文之間的最大間隔。如果設(shè)定了超時(shí)時(shí)間,報(bào)文間隔超過(guò)此設(shè)定時(shí)間還沒(méi)有接收到
下一條信息,則會(huì)導(dǎo)致 F0072 錯(cuò)誤,變頻器將會(huì)停止運(yùn)行。通信恢復(fù)后此故障才能被復(fù)位。
根據(jù) USS 網(wǎng)絡(luò)通信速率和站數(shù)的不同,此超時(shí)值會(huì)不同。如果要設(shè)定超時(shí)值,請(qǐng)參考相關(guān)表格,并選取一個(gè)適當(dāng)?shù)臄?shù)值。
9. P0971: 設(shè)置 P0971 = 1,上述參數(shù)將保存入MM 440 的 EEPROM 中。

USS 通信是由 S7-200 和驅(qū)動(dòng)裝置配合,因此相關(guān)參數(shù)一定要配合設(shè)置。如通信速率設(shè)置不一樣,當(dāng)然無(wú)法通信。
我這有個(gè)西門(mén)子的PLC和變頻器DP通訊
一、硬件組態(tài)
1. 將MASTERDRIVES CBP/CBP2 加入組態(tài)
2. Profibus 地址

3. 將MICR.master4 加入組態(tài)
4. Profibus 地址

二、選擇數(shù)據(jù)格式
1. MASTERDRIVE中可供選擇的PP0類(lèi)型
2. I/Q address

3. MICR.master4 中可供選擇的數(shù)據(jù)格式
4. I/Q address

Step 7 中的編程
創(chuàng)建數(shù)據(jù)塊DB1

說(shuō)明:
1.在Step7 中對(duì)PKW (參數(shù)區(qū))讀寫(xiě)參數(shù)時(shí)調(diào)用SFC14和 SFC15
2. SFC14(“DPRD_DAT”)用于讀Profibus 從站的數(shù)據(jù)
3. SFC15(“DPWR_DAT”)用于將數(shù)據(jù)寫(xiě)入Profibus 從站
4. W#16#100(即256)是硬件組態(tài)時(shí)PKW的起始地址
舉例
讀參數(shù)r015


1. W#16#100(即256)是硬件組態(tài)時(shí)PKW的起始地址
2 .將從站數(shù)據(jù)讀入DB1.DBX0.0 開(kāi)始的8個(gè)字節(jié)(P#DB1.DBX0.0 BYTE 8)
PKE -> DB1.DBW0
IND -> DB1.DBW2
PWE1 -> DB1.DBW4 參數(shù)值的高字位
PWE2 -> DB1.DBW6 參數(shù)值的低字位
3 .將DB1.DBX28.0 開(kāi)始的8個(gè)字節(jié)寫(xiě)入從站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 -> PKE
DB1.DBW30 -> IND
參數(shù)值的高字位 DB1.DBW32 -> PWE1
參數(shù)值的低字位 DB1.DBW34 -> PWE2
舉例
讀參數(shù)P401.2


1. W#16#100(即256)是硬件組態(tài)時(shí)PKW的起始地址
2 .將從站數(shù)據(jù)讀入DB1.DBX0.0 開(kāi)始的8個(gè)字節(jié)(P#DB1.DBX0.0 BYTE 8)
PKE -> DB1.DBW0
IND -> DB1.DBW2
PWE1 -> DB1.DBW4 參數(shù)值的高字位
PWE2 -> DB1.DBW6 參數(shù)值的低字位
3 . 將DB1.DBX28.0 開(kāi)始的8個(gè)字節(jié)寫(xiě)入從站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 -> PKE
DB1.DBW30 -> IND
參數(shù)值的高字位 DB1.DBW32 -> PWE1
參數(shù)值的低字位 DB1.DBW34 -> PWE2
舉例
3. 讀參數(shù)U001.2




1. W#16#100(即256)是硬件組態(tài)時(shí)PKW的起始地址
2 .將從站數(shù)據(jù)讀入DB1.DBX0.0 開(kāi)始的8個(gè)字節(jié)(P#DB1.DBX0.0 BYTE 8)
PKE -> DB1.DBW0
IND -> DB1.DBW2
PWE1 -> DB1.DBW4 參數(shù)值的高字位
PWE2 -> DB1.DBW6 參數(shù)值的低字位
3 . 將DB1.DBX28.0 開(kāi)始的8個(gè)字節(jié)寫(xiě)入從站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 -> PKE
DB1.DBW30 -> IND
參數(shù)值的高字位 DB1.DBW32 -> PWE1
參數(shù)值的低字位 DB1.DBW34 -> PWE2

舉例(寫(xiě)參數(shù))
4. 寫(xiě)參數(shù)P401.1 (將W#16#1000 寫(xiě)入P401.1中)

1.將W#16# 8191 寫(xiě)入DB1.DBW28 (PWE)


1. W#16#100(即256)是硬件組態(tài)時(shí)PKW的起始地址
2 .將從站數(shù)據(jù)讀入DB1.DBX0.0 開(kāi)始的8個(gè)字節(jié)(P#DB1.DBX0.0 BYTE 8)
PKE -> DB1.DBW0
IND -> DB1.DBW2
PWE1 -> DB1.DBW4 參數(shù)值的高字位
PWE2 -> DB1.DBW6 參數(shù)值的低字位
3 . 將DB1.DBX28.0 開(kāi)始的8個(gè)字節(jié)寫(xiě)入從站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 -> PKE
DB1.DBW30 -> IND
參數(shù)值的高字位 DB1.DBW32 -> PWE1
參數(shù)值的低字位 DB1.DBW34 -> PWE2

對(duì)PZD (過(guò)程數(shù)據(jù))的讀寫(xiě)
說(shuō)明:
1. 在Step7 中對(duì)PZD (過(guò)程數(shù)據(jù))讀寫(xiě)參數(shù)時(shí)調(diào)用SFC14和SFC15
2. SFC14(“DPRD_DAT”)用于讀Profibus 從站的數(shù)據(jù)
3. SFC15(“DPWR_DAT”)用于將數(shù)據(jù)寫(xiě)入Profibus 從站
4. W#16#108(即264)是硬件組態(tài)時(shí)PZD的起始地址
5. 對(duì)特殊結(jié)構(gòu)的PZD 可用PQW , PIW 進(jìn)行讀寫(xiě)
舉例
5: 對(duì)PPO5 中10PZD的讀寫(xiě)


DB1中與PZD相對(duì)應(yīng)的數(shù)據(jù)字

1.在P918 中設(shè)置Profibus 地址,必須與Step 7 中設(shè)置相同.地址不能重復(fù).
2. 控制字第十位置“1”. PZD1 = W#16#X4XX

yexinping
思達(dá)
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 199 個(gè)
工控威望: 299 點(diǎn)
下載積分: 906 分
在線時(shí)間: 130(小時(shí))
注冊(cè)時(shí)間: 2008-08-31
最后登錄: 2024-11-23
查看yexinping的 主題 / 回貼
1樓  發(fā)表于: 2011-04-03 16:30
感謝樓主