發(fā)布時(shí)間:2019-08-24 來(lái)源:眾智博遠
西門(mén)子S7-1200 PLC在當前的市場(chǎng)中有著(zhù)廣泛的應用,作為常與變頻器共同使用的PLC,其與西門(mén)子MM440 變頻器的USS通信一直在市場(chǎng)上有著(zhù)非常廣泛的應用。本文將主要介紹如何使用USS通信協(xié)議來(lái)實(shí)現S7-1200與MM440變頻器的通信。
1. USS通信介紹
1.1. USS協(xié)議特點(diǎn)
USS (Universal Serial Interface, 即通用串行通信接口) 是西門(mén)子專(zhuān)為驅動(dòng)裝置開(kāi)發(fā)的通信協(xié)議。USS 協(xié)議的基本特點(diǎn)如下:
? 支持多點(diǎn)通信(因而可以應用在 RS 485 等網(wǎng)絡(luò )上)
? 采用單主站的“主-從”訪(fǎng)問(wèn)機制
? 每個(gè)網(wǎng)絡(luò )上多可以有 32 個(gè)節點(diǎn)(多 31 個(gè)從站)
? 簡(jiǎn)單可靠的報文格式,使數據傳輸靈活
? 容易實(shí)現,成本較低
USS 的工作機制是,通信總是由主站發(fā)起,USS 主站不斷循環(huán)輪詢(xún)各個(gè)從站,從站根據收到的指令,決定是否以及如何響應。從站永遠不會(huì )主動(dòng)發(fā)送數據。從站在以下條件滿(mǎn)足時(shí)應答:
-- 接收到的主站報文沒(méi)有錯誤,并且
-- 本從站在接收到主站報文中被尋址
上述條件不滿(mǎn)足,或者主站發(fā)出的是廣播報文,從站不會(huì )做任何響應。對于主站來(lái)說(shuō),從站在接收到主站報文之后的一定時(shí)間內發(fā)回響應。否則主站將視為出錯。
USS 的字符傳輸格式符合 UART 規范,即使用串行異步傳輸方式。USS 在串行數據總線(xiàn)上的字符傳輸幀為 11 位長(cháng)度,如表1所示:
表1:USS字符幀
USS 協(xié)議的報文簡(jiǎn)潔可靠,靈活。報文由一連串的字符組成,協(xié)議中定義了它們的特
定功能,表2所示:
表2:USS報文結構
每小格代表一個(gè)字符(字節)。其中:
STX: 起始字符,總是 02 h
LGE: 報文長(cháng)度
ADR:從站地址及報文類(lèi)型
BCC: BCC 校驗符
凈數據區由 PKW 區和 PZD 區組成,如表3所示:
表3:USS凈數據區
PKW: 此區域用于讀寫(xiě)參數值、參數定義或參數描述文本,并可修改和報告參數的改變 。其中:
PKE: 參數 ID。包括代表主站指令和從站響應的信息,以及參數號等
IND: 參數索引,主要用于與 PKE 配合定位參數
PWEm:參數值數據
PZD: 此區域用于在主站和從站之間傳遞控制和過(guò)程數據。控制參數按設定好的固定格式在主、從站之間對應往返。如:
PZD1:主站發(fā)給從站的控制字/從站返回主站的狀態(tài)字
PZD2: 主站發(fā)給從站的給定/從站返回主站的實(shí)際反饋
根據傳輸的數據類(lèi)型和驅動(dòng)裝置的不同,PKW 和 PZD 區的數據長(cháng)度都不是固定的,它們可以靈活改變以適應具體的需要。但是,在用于與控制器通信的自動(dòng)控制任務(wù)時(shí),網(wǎng)絡(luò )上的所有節點(diǎn)都要按相同的設定工作,并且在整個(gè)工作過(guò)程中不能隨意改變。
注意:
對于不同的驅動(dòng)裝置和工作模式,PKW 和 PZD 的長(cháng)度可以按一定規律定義。 一旦確定就不能在運行中隨意改變 ;
PKW 可以訪(fǎng)問(wèn)所有對 USS 通信開(kāi)放的參數;而 PZD 僅能訪(fǎng)問(wèn)特定的控制和過(guò)程數據;
PKW 在許多驅動(dòng)裝置中是作為后臺任務(wù)處理,因此 PZD 的實(shí)時(shí)性要比 PKW 好。
1.2. S7-1200 USS通信簡(jiǎn)介
CM 1241 RS485 模塊通過(guò) RS485 端口與MM440進(jìn)行通信。 可使用 USS 庫控制MM440和讀/寫(xiě)MM440參數。該庫提供 1 個(gè) FB 和 3 個(gè) FC 來(lái)支持 USS 協(xié)議。 每個(gè) CM1241 RS485 通信模塊多支持 16 個(gè)MM440。連接到一個(gè) CM 1241 RS485 的所有MM440(多 16 個(gè))是同一 USS 網(wǎng)絡(luò )的一部分。連接到另一 CM 1241 RS485 的所有MM440是另一 USS 網(wǎng)絡(luò )的一部分。 因為 S7-1200多支持三個(gè) CM 1241 RS485 設備,所以用戶(hù)多可建立三個(gè) USS 網(wǎng)絡(luò ),每個(gè)網(wǎng)絡(luò )多 16 個(gè)MM440,總共支持 48 個(gè) USS MM440。各 USS 網(wǎng)絡(luò )使用各自的數據塊進(jìn)行管理(使用三個(gè) CM 1241 RS485 設備建立三個(gè) USS網(wǎng)絡(luò )需要三個(gè)數據塊)。 同一USS 網(wǎng)絡(luò )相關(guān)的所有指令共享該數據塊。 這包括用于控制網(wǎng)絡(luò )上所有MM440的 USS_DRV、USS_PORT、USS_RPM 和USS_WPM 指令。
2. 硬件需求及接線(xiàn)
2.1. 硬件需求
S7-1200 PLC目前有3種類(lèi)型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類(lèi)型的CPU都可以使用USS通信協(xié)議通過(guò)通信模塊CM1241 RS485來(lái)實(shí)現S7-1200與MM440變頻器的通信。
本例中使用的PLC硬件為:
1) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
2) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
3) CSM 1277 ( 6GK7 277 -1AA00 - 0AA0)
本例中使用的MM440變頻器硬件為:
1) MM440 ( 6SE6440 - 2AB11 - 2AA1 )
2) MICROMASTER 4 ENCODER MODULE ( 6SE6400 - 0EN00 - 0AA0 )
3) SIEMENS MOTOR ( 1LA7060 - 4AB10 - Z )
4) USS 通信電纜 ( 6XV1830 - 0EH10 )
2.2. 接線(xiàn)
建議使用西門(mén)子的網(wǎng)絡(luò )插頭和PROFIBUS電纜。在 S7-1200 CPU 通信口上使用西門(mén)子網(wǎng)絡(luò )插頭。
PROFIBUS 電纜的紅色導線(xiàn)B 即 RS 485 信號 +,此信號應當連接到 MM 440 通信端口的 P+;綠色導線(xiàn)A 即 RS 485 信號 -,此信號應當連接到 MM 440 通信端口的 N-。
圖1: MM440接線(xiàn)端子 表4:MM440端子定義
因為MM 440 通信口是端子連接,所以 PROFIBUS 電纜不需要網(wǎng)絡(luò )插頭,而是剝出線(xiàn)頭直接壓在端子上。如果還要連接下一個(gè)驅動(dòng)裝置,則兩條電纜的同色芯線(xiàn)可以壓在同一個(gè)端子內。PROFIBUS 電纜的紅色芯線(xiàn)應當壓入端子 29;綠色芯線(xiàn)應當連接到端子 30,如圖1、表4所示。完整接線(xiàn)圖如圖2所示。
圖2: S7-1200與MM440接線(xiàn)圖
a. 屏蔽/保護接地母排,或可靠的多點(diǎn)接地。此連接對抑制干擾有重要意義。
b. PROFIBUS 網(wǎng)絡(luò )插頭,內置偏置和終端電阻。
c. MM 440 端的偏置和終端電阻。
d. 通信口的等電位連接。可以保護通信口不致因共模電壓差損壞或通信中斷。
e. 雙絞屏蔽電纜(PROFIBUS)電纜,因是高速通信,電纜的屏蔽層須雙端接地(接 PE)。
注意,以下幾點(diǎn)對網(wǎng)絡(luò )的性能有極為重要的影響。幾乎所有網(wǎng)絡(luò )通信質(zhì)量方面的問(wèn)題都與未考慮到下列事項有關(guān):
? 偏置電阻用于在復雜的環(huán)境下確保通信線(xiàn)上的電平在總線(xiàn)未被驅動(dòng)時(shí)保持穩定;終端電阻用于吸收網(wǎng)絡(luò )上的反射信號。一個(gè)完善的總線(xiàn)型網(wǎng)絡(luò )在兩端接偏置和終端電阻。
? 通信口 M 的等電位連接建議單獨采用較粗的導線(xiàn) ,而不要使用 PROFIBUS 的屏蔽層,因為此連接上可能有較大的電流,以致通信中斷。
? PROFIBUS 電纜的屏蔽層要盡量大面積接 PE。一個(gè)實(shí)用的做法是在靠近插頭、接線(xiàn)端子處環(huán)剝外皮,用壓箍將裸露的屏蔽層壓緊在 PE 接地體上(如 PE 母排或良好接地的裸露金屬安裝板)。
? 通信線(xiàn)與動(dòng)力線(xiàn)分開(kāi)布線(xiàn);緊貼金屬板安裝也能抗干擾能力。驅動(dòng)裝置的輸入/輸出端要盡量采用濾波裝置,并使用屏蔽電纜。
? 在 MM 440 的包裝內提供了終端偏置電阻元件,接線(xiàn)時(shí)可按說(shuō)明書(shū)直接壓在端子上。如果可能,可采用熱縮管將此元件包裹,并適當固定。
3. 組態(tài)
我們通過(guò)下述的實(shí)際操作來(lái)介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和MM440變頻器的USS通信。
3.1. PLC 硬件組態(tài)
首先在Step7 Basic V10.5中建立一個(gè)項目,如圖3所示。
圖3: 新建S7 1200項目
在硬件配置中,添加CPU1214C和通信模塊CM1241 RS485模塊,如圖4所示:
圖4: S7 1200硬件配置
在CPU的屬性中,設置以太網(wǎng)的IP地址,建立PG與PLC的連接,如圖5所示。
圖5: S7 1200 IP地址的設置
3.2. MM440參數設置
我們假定已經(jīng)完成了驅動(dòng)裝置的基本參數設置和調試(如電機參數辨識等等),以下只涉及與 S7-1200 控制器連接相關(guān)的參數。
MM 440 的參數分為幾個(gè)訪(fǎng)問(wèn)級別,以便于過(guò)濾不需要查看的部分。 與 S7-1200 連接時(shí),需要設置的主要有“控制源”和“設定源”兩組參數。要設置此類(lèi)參數,需要“專(zhuān)家”參數訪(fǎng)問(wèn)級別,即首先需要把 P0003 參數設置為 3。
控制源參數設置:
控制命令控制驅動(dòng)裝置的啟動(dòng)、停止、正/反轉等功能。控制源參數設置決定了驅動(dòng)裝置從何種途徑接受控制信號,如表5所示。
表5:控制源由參數 P0700 設置
此參數有分組,在此僅設一組,即 P0700[0]。
設定源控制參數:
設定值控制驅動(dòng)裝置的轉速/頻率等功能。設定源參數決定了驅動(dòng)裝置從哪里接受設定值(即給定),如表6所示。
表6:設定源由參數 P1000 設置
此參數有分組,在此僅設一組,即 P1000[0]。
控制源和設定源之間可以自由組合,根據工藝要求可以靈活選用。我們以控制源和設定源都來(lái)自 COM Link 上的 USS 通信為例,簡(jiǎn)介 USS 通信的參數設置。
主要參數有:
1. P0700: 設置 P0700[0] = 5,即控制源來(lái)自 COM Link 上的 USS 通信;
2. P1000: 設置 P1000[0] = 5,即設定源來(lái)自 COM Link 上的 USS 通信;
3. P2009: 決定是否對 COM Link 上的 USS 通信設定值規格化,即設定值將是運轉頻率的百分比形式,還是頻率值。為0,不規格化 USS 通信設定值,即設定為MM440中的頻率設定范圍的百分比形式;為1,對 USS 通信設定值進(jìn)行規格化,即設定值為的頻率數值;
4. P2010: 設置 COM Link 上的 USS 通信速率。根據 S7-1200 通信口的限制,支持的通信波特率如表7所示。
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 |
表7:通信波特率
5. P2011: 設置 P2011[0] = 0 至 31,即驅動(dòng)裝置 COM Link 上的 USS 通信口在網(wǎng)絡(luò )上的從站地址;
6. P2012: 設置 P2012[0] = 2,即 USS PZD 區長(cháng)度為 2 個(gè)字長(cháng);
7. P2013: 設置 P2013[0] = 4;
8. P2014: 設置 P2014[0] = 0 至 65535,即 COM Link 上的 USS 通信控制信號中斷超時(shí)時(shí)間,單位為 ms;如設置為 0,則不進(jìn)行此端口上的超時(shí)檢查;
9. P0971: 設置 P0971 = 1,上述參數將保存入MM 440 的 EEPROM 中。
4. USS通信原理與編程的實(shí)現
4.1 S7 1200 PLC與MM440 通過(guò)USS通信的基本原理
S7 1200提供了專(zhuān)用的USS庫進(jìn)行USS通信,如圖6所示:
圖6:S7 1200 專(zhuān)用的USS庫
USS_DRV功能塊通過(guò)USS_DRV_DB數據塊實(shí)現與USS_PORT功能塊的數據接收與傳送,而USS_PORT功能塊是S7-1200 PLC CM1241 RS485模塊與MM440之間的通信接口。USS_RPM功能塊和USS_WPM功能塊與MM440的通信與USS_DRV功能塊的通信方式是相同的。如圖7所示。
圖7:通信結構圖
4.2. 功能塊使用介紹
USS_DRV 功能塊是S7-1200 USS通信的主體功能塊,接受MM440的信息和控制MM440的指令都是通過(guò)這個(gè)功能快來(lái)完成的。在主 OB中調用。
USS_PORT功能塊是S7-1200與MM440進(jìn)行USS通信的接口,主要設置通信的接口參數。可在主OB或中斷OB中調用。
USS_RPM功能塊是通過(guò)USS通信讀取MM440的參數。在主 OB中調用。
USS_WPM功能塊是通過(guò)USS通信設置MM440的參數。在主 OB中調用。
4.3. S7 1200 PLC進(jìn)行USS通信的編程
4.3.1. USS_DRV功能塊的編程
USS_DRV功能塊的編程如圖8所示。
圖8: USS_DRV功能塊的編程
USS_DRV功能塊用來(lái)與MM440進(jìn)行交換數據,從而讀取MM440的狀態(tài)以及控制MM440的運行。每個(gè)MM440使用的一個(gè)USS_DRV功能塊,但是同一個(gè)CM1241 RS485模塊的USS網(wǎng)絡(luò )的所有MM440(多16個(gè))都使用同一個(gè)USS_DRV_DB。
USS_DRV_DB: 指定MM440進(jìn)行USS通信的數據塊。 | |||||
RUN: 指定DB塊的MM440啟動(dòng)指令。 | |||||
OFF2: 緊急停止,自由停車(chē)。 該位為0時(shí)停車(chē)。 | |||||
OFF3: 快速停車(chē),帶制動(dòng)停車(chē)。該位為0時(shí)停車(chē)。 | |||||
F_ACK: MM440故障確認。 | |||||
DIR : MM440控制電機的轉向。 | |||||
SPEED_SP: MM440的速度設定值。 | |||||
NDR: 新數據就緒。 | |||||
ERROR: 程序輸出錯誤。 | |||||
RUN_EN: MM440運行狀態(tài)指示。 | |||||
D_DIR: MM440運行方向狀態(tài)指示。 | |||||
INHIBIT: MM440是否被禁止的狀態(tài)指示。 | |||||
FAULT: MM440故障。 | |||||
SPEED: MM440的反饋的實(shí)際速度值。 | |||||
DRIVE: MM440的USS站地址。MM440參數P2011設置。 | |||||
PZD_LEN: PZD數據的字數,值2,4,6或8個(gè)字。MM440參數P2012設置。 | |||||
4.3.2. USS通信接口參數功能塊的編程
USS通信接口參數功能塊的編程如圖9所示。
圖9: USS通信接口參數功能塊的編程
USS_PORT功能塊用來(lái)處理USS網(wǎng)絡(luò )上的通信,它是S71200 CPU與MM440的通信接口。每個(gè)CM1241 RS485模塊有且有一個(gè)USS_PORT功能塊。
PORT: 通信模塊標識符:在默認變量表的“常量”(Constants) 選項卡內引用的常量。
BAUD: 指的是和MM440進(jìn)行通行的速率。 MM440的參數P2010種進(jìn)行設置。
USS_DB: 引用在用戶(hù)程序中放置 USS_DRV 指令時(shí)創(chuàng )建和初始化的背景數據塊。
ERROR: 輸出錯誤。
STATUS:掃描或初始化的狀態(tài)。
USS_PORT 功能通過(guò)RS485通信模塊處理 CPU 和變頻器之間的實(shí)際通信。 每次調用此功能可處理與一個(gè)變頻器的一次通信。 用戶(hù)程序盡快調用此功能以防止與變頻器通信超時(shí)。 可在主 OB 或任何中斷 OB 中調用此功能。通常從循環(huán)中斷 OB 調用USS_PORT 以防止變頻器超時(shí)以及使 USS_DRV 調用的 USS 數據保持新。
S7-1200 PLC與MM440的通信是與它本身的掃描周期不同步的,在完成一次與MM440的通信事件之前,S7-1200通常完成了多個(gè)掃描。
USS_PORT通信的時(shí)間間隔是S7-1200與MM440通信所需要的時(shí)間,不同的通信波特率對應的不同的USS_PORT通信間隔時(shí)間。表8列出了不同的波特率對應的USS_PORT通信間隔時(shí)間。
表8:不同的波特率對應的USS_PORT小通信間隔時(shí)間
USS_PORT在發(fā)生通信錯誤時(shí),通常進(jìn)行3次嘗試來(lái)完成通信事件,那么S7-1200與MM440通信的時(shí)間就是USS_PORT發(fā)生通信超時(shí)的時(shí)間間隔。例如:如果通信波特率是9600,那么USS_PORT與MM440通信的時(shí)間間隔應當大于小的調用時(shí)間間隔,即大于116.3毫秒而小于349毫秒。S7-1200 USS 協(xié)議庫默認的通信錯誤超時(shí)嘗試次數是2次。
基于以上的USS_PORT通信時(shí)間的處理,建議在循環(huán)中斷OB塊中調用USS_PORT通信功能塊。在建立循環(huán)中斷OB塊時(shí),我們可以設置循環(huán)中斷OB塊的掃描時(shí)間,以滿(mǎn)足通信的要求。循環(huán)中斷OB塊的掃描時(shí)間的設置如圖10所示:
圖10:循環(huán)中斷OB塊的掃描時(shí)間的設置
4.3.3. USS_RPM功能塊的編程
USS_RPM功能塊的編程 如圖11所示。
圖11:USS_RPM功能塊的編程
USS_RPM功能塊用于通過(guò)USS通信從MM440讀取參數。
REQ: 讀取參數請求。 | |||
DRIVE: MM440的USS站地址。 | |||
PARAM: MM440的參數代碼。 | |||
INDEX: MM440的參數索引代碼 | |||
USS_DB:指定MM440進(jìn)行USS通信的數據塊。 | |||
DONE: 讀取參數完成。 | |||
ERROR: 讀取參數錯誤。 | |||
STATUS:讀取參數狀態(tài)代碼。 | |||
VALUE: 所讀取的參數的值。 |
注意:進(jìn)行讀取參數功能塊編程時(shí),各個(gè)數據的數據類(lèi)型一定要正確對應。
4.3.4. USS_WPM功能塊的編程
USS_WPM功能塊的編程如圖12所示。
圖12:USS_WPM功能塊的編程
USS_WPM功能塊用于通過(guò)USS通信設置MM440的參數。
REQ: 寫(xiě)參數請求。 | |||
DRIVE: MM440的USS站地址。 | |||
PARAM: MM440的參數代碼。 | |||
INDEX: MM440的參數索引代碼。 | |||
EEPROM:把參數存儲到MM440的EEPROM。 | |||
VALUE: 設置參數的值。 | |||
USS_DB:指定MM440進(jìn)行USS通信的數據塊。 | |||
DONE: 讀取參數完成。 | |||
ERROR: 讀取參數錯誤狀態(tài)。 |
注意:對寫(xiě)入參數功能塊編程時(shí),各個(gè)數據的數據類(lèi)型一定要正確對應。
4.3.5. 常見(jiàn)錯誤
如果讀寫(xiě)同時(shí)使能,則報錯818A:參數請求通道正在被本變頻器的另一請求占用。如圖13所示。
圖13:讀寫(xiě)同時(shí)使能報錯
如果通信斷開(kāi),則PORT報錯818B,如圖14所示。
圖14:通信斷開(kāi)報錯
如果速度設定值不正確,則報錯8186,如圖15所示。
圖15:速度設定值錯誤