商鋪名稱:上海斌勤電氣技術(shù)有限公司
聯(lián)系人:康奎(先生)
聯(lián)系手機(jī):
固定電話:
企業(yè)郵箱:192061030@qq.com
聯(lián)系地址:上海市松江區(qū)三新北路1800弄(松江電子商務(wù)園區(qū))
郵編:201501
聯(lián)系我時,請說是在線纜網(wǎng)上看到的,謝謝!
西門子德國6GK7 243-1EX00-0XE0
COMMUNICATIONSPROCESSOR CP243-1 FOR CONNECTION OF SIMATIC S7-22X TO INDUSTRIAL ETHERNET
SIEMENS西門子希殿電氣技術(shù)有限公司
聯(lián)系人:康奎 電話:021-60571249
傳真:021-60541249 郵箱:192061030@qq.com
工作QQ:192061030 手機(jī):186-2106-1383
1多功能測量表SENTRON PAC3200簡介
SENTRON PAC3200電能監(jiān)視設(shè)備可精確提供系統(tǒng)特性,包括電壓和電流最大值、最小值和平均值,功率值、頻率、功率因數(shù)、對稱性、邏輯計算、負(fù)載趨勢、諧波和總諧波失真等。SENTRON PAC3200可檢測 50 多個基本數(shù)值,具有 10個電能計數(shù)器,可用于全面負(fù)載檢測。它們的測量準(zhǔn)確度滿足電能計數(shù)器標(biāo)準(zhǔn)所規(guī)定的較高要求。PAC3200帶有MODBUS RTU-RS485接口、PROFIBUS-DP接口和MODBUS TCP 接口,可以很方便將PAC3200的數(shù)據(jù)上傳到PLC中進(jìn)行處理,也可以上傳到HMI中進(jìn)行數(shù)據(jù)分析、處理及歸檔。對于西門子系統(tǒng)可以輕松地將PAC3200集成到上位自動化系統(tǒng)中,例如,集成到西門子 SIMATIC PCS 7 powerrate 和SIMATIC WinCC powerrate 軟件包中。
2 PAC3200通信接口對比
PAC3200可以通過MODBUS RTU RS485接口、MODBUS TCP 以太網(wǎng)接口以及現(xiàn)場總線PROFIBUS-DP接口與PLC和HMI通信。下面分別以連接S7-300 PLC為例,在通信性能、連接的個數(shù)、編程方面進(jìn)行對比:
1) 通信性能:PROFIBUS-DP使用令牌方式由主站依次訪問從站,是實時現(xiàn)場總線,通信響應(yīng)快,通信的響應(yīng)時間應(yīng)考慮PAC3200數(shù)據(jù)的刷新時間(自身刷新時間可能較PROFIBUS-DP刷新時間慢);如果選擇以太網(wǎng)MODBUS TCP 通信,由于不是實時網(wǎng)絡(luò),通信性能次之,通信的響應(yīng)時間也應(yīng)考慮PAC3200數(shù)據(jù)的刷新時間(自身刷新時間可能較以太網(wǎng)刷新時間慢);使用RS485 MODBUS RTU通信,由于基于串口,通信性能不能與以太網(wǎng)與PROFIBUS-DP相比較。
2) 連接個數(shù):使用PROFIBUS-DP,基于主站的性能,最多可以連接126個站點;以太網(wǎng)MODBUS TCP 通信,基于CP的連接個數(shù),通常16個;使用RS485 MODBUS RTU,可以連接一個網(wǎng)段,典型值31個站點。
3) 編程:使用PROFIBUS-DP,不需要編寫通信程序;使用以太網(wǎng)MODBUS TCP 通信,需要編寫發(fā)送接收通信程序;使用RS485 MODBUS RTU通信,需要編寫從站輪詢程序,比較麻煩,如果沒有購買MODBUS RTU的驅(qū)動,還需要編寫通信程序。
4) 價格:PROFIBUS-DP與RS485 MODBUS RTU通信需要購買選件網(wǎng)卡,而PAC3200本身集成以太網(wǎng)接口,支持MODBUS TCP 通信。
下面將介紹PAC3200的MODBUS TCP 通信。
3 MODBUS TCP 通信報文
MODBUS TCP 使MODBUS RTU協(xié)議運行于以太網(wǎng),MODBUS TCP使用TCP/IP和以太網(wǎng)在站點間傳送MODBUS報文,MODBUS TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡(luò)和網(wǎng)絡(luò)標(biāo)準(zhǔn)TCP/IP以及以MODBUS作為應(yīng)用協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)表示方法。MODBUS TCP通信報文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。與傳統(tǒng)的串口方式,MODBUS TCP插入一個標(biāo)準(zhǔn)的MODBUS報文到TCP報文中,不再帶有數(shù)據(jù)校驗和地址,如圖1所示:
圖1 MODBUS TCP報文
由于使用以太網(wǎng)TCP/IP數(shù)據(jù)鏈路層的校驗機(jī)制而保證了數(shù)據(jù)的完整性,MODBUS TCP 報文中不再帶有數(shù)據(jù)校驗”CHECKSUM”,原有報文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS應(yīng)用協(xié)議報文頭中。
MODBUS TCP服務(wù)器使用502端口與客戶端進(jìn)行通信。
S7-300 與PAC3200 之間進(jìn)行MODBUS TCP 通信時,MODBUS應(yīng)為協(xié)議的報文頭賦值如下:
byte 0: transaction identifier (高字節(jié)) – 為0
byte 1:transaction identifier(低字節(jié)) - 為0
byte 2:protocol identifier(高字節(jié)) = 0
byte 3:protocol identifier (低字節(jié)) = 0
byte 4:length field (高字節(jié)) = 0 (因為所有的報文小于256)
byte 5:length field (低字節(jié)) = 后面跟隨的字節(jié)數(shù)
byte 6:unit identifier -原從站地址,這里為0
byte 7:MODBUS 功能碼,通過功能碼發(fā)送通信命令
byte 8 ~:后續(xù)的字節(jié)數(shù)與功能碼相關(guān)
4 PAC3200支持的MODBUS TCP 功能碼
在MODBUS TCP 的報文中,通過使用功能碼請求通信伙伴的數(shù)據(jù),如對內(nèi)部寄存器的讀寫操作、讀輸入寄存器、寫輸出寄存器等。不同的操作使用不同的功能碼,如FC1、2、3、4、5、6、7、15、16等,PAC3200支持FC2、FC3、FC4、FC6、FC16,在下面將介紹PAC3200這些功能碼的報文格式:
FC2 讀輸入的位信號:
請求:
Byte 0: 功能碼,2
Byte 1-2: 開始的位地址
Byte 3-4:位的個數(shù) (1-2000)
響應(yīng):
Byte 0: 返回的功能碼 2
Byte 1: 返回的字節(jié)個數(shù) (B=(位的個數(shù)+7)/8)
Byte 2-(B+1): 位信號的值 (最低有效位是第一個位信號)
FC3 讀多個寄存器信號:
請求:
Byte 0: 功能碼,3
Byte 1-2: 寄存器開始地址
Byte 3-4: 寄存器的個數(shù) (1-125)
響應(yīng):
Byte 0: 返回的功能碼 3
Byte 1: 返回的字節(jié)個數(shù) (B=2倍寄存器數(shù))
Byte 2-(B+1): 寄存器的值
FC4 讀輸入寄存器信號:
請求:
Byte 0: 功能碼,4
Byte 1-2: 輸入寄存器開始地址
Byte 3-4: 輸入寄存器的個數(shù) (1-125)
響應(yīng):
Byte 0: 返回的功能碼 4
Byte 1: 返回的字節(jié)個數(shù) (B=2倍輸入寄存器數(shù))
Byte 2-(B+1): 輸入寄存器的值
FC6 寫單個寄存器信號:
請求:
Byte 0: 功能碼,6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
響應(yīng):
Byte 0: 返回的功能碼 6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
FC16 寫多個寄存器信號:
請求:
Byte 0: 功能碼,10(HEX)
Byte 1-2: 寄存器開始地址
Byte 3-4: 寄存器的個數(shù) (1-100)
Byte 5:字節(jié)的個數(shù) (B=2倍輸入寄存器數(shù))
Byte 6-(B+5) 預(yù)置的寄存器值
響應(yīng):
Byte 0: 返回的功能碼 10(HEX)
Byte 1-2: 寄存器開始地址
Byte 3-4: 寄存器個數(shù)
注:
一個寄存器為兩個字節(jié),上面介紹的首地址為MODBUS TCP 報文中PDU的首地址。
5 PAC3200的地址區(qū)
使用不同的功能碼可以對PAC3200不同的地址區(qū)進(jìn)行操作:
測量變量:例如電壓、電流值、輸入、輸出等變量可以使用FC3和FC4,F(xiàn)C3與FC4功能相
同,兩者都可以讀。
狀態(tài)參數(shù):例如限制值0、1、2以及輸入0、輸出0等位信號,使用FC2可以讀出這些信
號。
設(shè)定參數(shù):例如連接類型、是否使用電壓變送器電壓、一次側(cè)電壓等,可以使用FC3、FC4進(jìn)
行讀操作,兩者功能相同,使用FC16進(jìn)行寫操作。
通信參數(shù):例如IP地址、網(wǎng)關(guān)等參數(shù),可以使用FC3、FC4進(jìn)
行讀操作,兩者功能相同,使用FC16進(jìn)行寫操作。
信息參數(shù):例如產(chǎn)品的序列號等,可以使用FC3、FC4進(jìn)行讀操作,兩者功能相同,使用
FC16進(jìn)行寫操作。
命令參數(shù):例如復(fù)位最大值、最小值以及能量計數(shù)器等參數(shù),使用FC6進(jìn)行寫操作。
6 PAC3200側(cè)的配置
使用PAC3200集成的以太網(wǎng)通信接口進(jìn)行MODBUS TCP通信,需要對接口進(jìn)行設(shè)置,步驟如下:
1):使用F4(Menu) > "SETTINGS> COMMUNICATION 進(jìn)入如下界面如圖2所示:
圖2 通信界面
2):使用F4(Edit)鍵對選中的條目進(jìn)行編輯,在通信界面中設(shè)定MODBUS TCP 通信的IP地
址、子網(wǎng)掩碼及網(wǎng)關(guān),在“PROTOCOL”中選擇“TCP”后退出,PAC3200側(cè)設(shè)置完成。
7 PLC側(cè)設(shè)置
在PLC側(cè)作的設(shè)置是為了與PAC3200建立TCP連接,以S7-300為例,步驟如下:
1):在SIMATIC Manager中創(chuàng)建一個S7-300的項目,本例中項目名為MODBUS_TCP。
2):插入一個S7-300站,從硬件目錄中插入CP343-1,本例為CP343-1IT,如圖3所示:
圖3 插入以太網(wǎng)模塊
3):雙擊CP343-1的PN IO 槽,配置IP地址、子網(wǎng)掩碼,CP343-1的IP地址必須與
PAC3200在一個網(wǎng)段中,否則需要配置路由器地址,如圖4所示:
圖4 設(shè)置CP地址參數(shù)
4):在硬件界面中點擊“Options”->“configure network”進(jìn)入網(wǎng)絡(luò)連接界面,如圖5所示:
西門子6ES7953-8LF20-0AA0
圖5 網(wǎng)絡(luò)配置界面
5):點擊CPU,出現(xiàn)網(wǎng)絡(luò)連接表,雙擊表中任一空格,選擇通信連接類型,由于CP343-1與
PAC3200使用以太網(wǎng)TCP/IP的通信方式,所以連接類型選擇為“TCP CONNECTION”,如
圖6所示:
圖6 選擇連接類型
6):確認(rèn)選擇的連接類型后,進(jìn)入屬性界面,如圖7所示:
圖7 連接屬性-通用信息欄
選擇“Active connection establishment”選項,表示在通信連接初始化中由CP343-1主動發(fā)出連接請求。同樣在“Block parameters”中自動生成通信參數(shù),用于編程時的參數(shù)賦值。
7):在連接屬性的地址欄中,配置通信雙方的地址,如圖8所示:
圖8 連接屬性-地址欄
在IP地址中填寫PAC3200的地址,本例中為192.168.1.13,在PORT端口號中定義本方的端口號,為了不與網(wǎng)絡(luò)中固定功能的端口號沖突,西門子PLC通常以2000開始,PAC3200的端口號由MODBUS TCP規(guī)定固定為502。
8):配置完成后,存盤編譯,將整個硬件配置下載到PLC中,使用網(wǎng)線連接PAC3200后,在
網(wǎng)絡(luò)配置界面中使用菜單命令:“PLC”->“activate connection status”,查看實際連 接狀態(tài),如圖9所示:
圖9 查看連接狀態(tài)
如果連接狀態(tài)顯示成功(符號為綠色的三角),可以進(jìn)行下一步工作,如果出現(xiàn)紅方塊,表示沒有建立連接,需要檢查通信雙方的設(shè)置及網(wǎng)線,通常的情況下,PAC3200設(shè)置完成后需要重新上電啟動。
如果需要與多個設(shè)備進(jìn)行MODBUS TCP通信,則需要建立多個通信連接,PLC側(cè)的端口號不能相同,可以為2000、2001、2002等,但是連接的不同MODBUS TCP的服務(wù)器端口號必須為502,只是IP地址不同。
8 PLC編程
在前面的章節(jié)中已經(jīng)介紹了MODBUS TCP的報文格式,在PLC側(cè)的通信程序就必須符合這種報文格式。下面以例子的方式介紹通信程序的編寫。
在OB1中調(diào)用用于CP343-1的通信函數(shù)FC5和FC6,如果是S7-400,需要在S7-400的函數(shù)庫中調(diào)用FC50和FC60,如圖10所示:
SIEMENS西門子希殿電氣技術(shù)有限公司
聯(lián)系人:康奎 電話:021-60571249
傳真:021-60541249 郵箱:192061030@qq.com
工作QQ:192061030 手機(jī):186-2106-1383
圖10 調(diào)用通信函數(shù)
通信函數(shù)FC5的參數(shù)含義:
ACT :沿觸發(fā)信號。
ID :參考本地CPU連接表中的塊參數(shù)(圖7)。
LADDR :參考本地CPU連接表中的塊參數(shù)(圖7)。
SEND : 發(fā)送區(qū),最大通信數(shù)據(jù)為8K字節(jié)。
LEN : 實際發(fā)送數(shù)據(jù)長度。
DONE :每次發(fā)送成功,產(chǎn)生一個上升沿。
ERROR :錯誤位。
STATUS:通信狀態(tài)字。通信函數(shù)FC6的參數(shù)含義:
ID :參考本地CPU連接表中的塊參數(shù)。
LADDR :參考本地CPU連接表中的塊參數(shù)。
RECV : 接收區(qū)。接收區(qū)應(yīng)大于等于發(fā)送區(qū)。
NDR : 每次接收到新數(shù)據(jù),產(chǎn)生一個上升沿。
ERROR :錯誤位。
STATUS:通信狀態(tài)字。
LEN : 實際接收數(shù)據(jù)長度。
如何實現(xiàn)MODBUS TCP通信,可以通過例子進(jìn)行說明,例如讀出PAC3200設(shè)備的IP地址,通過PAC3200的手冊可以知道,IP地址為通信參數(shù),偏移地址(開始地址)為63001,占用兩個寄存器,上面已經(jīng)介紹通信參數(shù)的讀取可以使用功能碼FC3或FC4讀出,MODBUS TCP 的報文頭(參考圖1)BMAP部分占用7個字節(jié),協(xié)議數(shù)據(jù)單元(PDU)部分占用5個字節(jié),那么通過通信函數(shù)FC5一共發(fā)送12個字節(jié),本例中數(shù)據(jù)發(fā)送區(qū)為DB1.DBB0~DB1.DBB11,然后將請求的內(nèi)容分別賦值到DB1.DBB0~DB1.DBB11中,請求報文格式如下:
DB1,DBB0=0 transaction identifier (高字節(jié)) – 為0 DB1,DBB1=0 transaction identifier(低字節(jié)) - 為0 DB1,DBB2=0 protocol identifier(高字節(jié)) = 0 DB1,DBB3=0 protocol identifier (低字節(jié)) = 0 DB1,DBB4=0 length field (高字節(jié)) = 0 (因為所有的報文小于256) DB1,DBB5=6 后面跟隨的字節(jié)數(shù) DB1,DBB6=7 unit identifier -原從站地址,這里為任意值 |
![]() |
MPAP |
DB1,DBB7=4 MODBUS 功能碼 DB1,DBB8= F6(HEX)輸入寄存器開始地址(高字節(jié)) DB1,DBB9=19 (HEX) 輸入寄存器開始地址(低字節(jié)) DB1,DBB10=0 輸入寄存器的個數(shù)(高字節(jié)) DB1,DBB11=2 輸入寄存器的個數(shù)(低字節(jié)) |
![]() |
PDU |
DB1.DBB0~DB1.DBB11經(jīng)過賦值請求信息后,例子中M0.5每個上升沿將發(fā)送一次請求,如果通信成功,通過FC6將接收到PAC3200的返回信息,返回信息為13個字節(jié),放入到數(shù)據(jù)接收區(qū)DB2.DBB0~DB2.DBB12中,接收報文的格式如下:
DB2,DBB0=0 transaction identifier (高字節(jié)) – 為0 DB2,DBB1=0 transaction identifier(低字節(jié)) - 為0 DB2,DBB2=0 protocol identifier(高字節(jié)) = 0 DB2,DBB3=0 protocol identifier (低字節(jié)) = 0 DB2,DBB4=0 length field (高字節(jié)) = 0 (因為所有的報文小于256) DB2,DBB5=7 后面跟隨的字節(jié)數(shù) DB2,DBB6=7 unit identifier -返回值 |
![]() |
MBAP |
DB2,DBB7=4 MODBUS 功能碼 DB2,DBB8= 4 返回的字節(jié)個數(shù) DB2,DBB9= C0(HEX) ,192(DEC)第一個寄存器值(高字節(jié)) DB2,DBB10=A8(HEX),168(DEC) 第一個寄存器值(低字節(jié)) DB2,DBB11=1 第二個寄存器值(高字節(jié)) DB2,DBB12=D(HEX),13(DEC)第二個寄存器值(低字節(jié)) |
![]() |
PDU |
1. 如何避免S7-300/400系統(tǒng)掃描時間過長而導(dǎo)致CPU停機(jī)?
如果用戶程序的執(zhí)行時間超出硬件組態(tài)中所設(shè)定CPU的掃描周期監(jiān)控時間,則CPU會因看門狗超時而停機(jī),同時觸發(fā)定時錯誤OB80,診斷信息如圖1所示:
圖1 診斷信息
S7-300/400 CPU的循環(huán)掃描時間(看門狗時間)默認(rèn)為150ms(最大可修改為6000ms),用戶程序的執(zhí)行時間必須在設(shè)定的掃描周期監(jiān)控時間范圍內(nèi)。最大掃描周期設(shè)置如圖2所示:
圖2 設(shè)置最大掃描周期時間
2. 如何查看S7-300/400系統(tǒng)掃描循環(huán)時間?
如果工程師需要了解程序的掃描周期,可通過如下兩種方法查詢。
方法一、將程序下載到PLC后,進(jìn)行在線連接,查看CPU信息,如圖3所示:
圖3 查看CPU“掃描循環(huán)時間”
方法二、通過將OB1相應(yīng)的臨時變量傳送到M區(qū),即可讀取CPU掃描循環(huán)時間,如圖4、圖5所示:
圖4 臨時變量傳送到M區(qū)
圖5 變量監(jiān)控
3. 如何查看S7-300/400中一個子程序的大約執(zhí)行時間?
使用S7-300/400 CPU時,如果工程師需要了解某個子程序的大約執(zhí)行時間,可在該子程序前、后分別讀取CPU系統(tǒng)時鐘,然后使用時鐘相減指令FC34進(jìn)行編程計算,步驟如下:
1、設(shè)置PLC系統(tǒng)時鐘,按圖6所示的設(shè)置:
圖6 置PLC系統(tǒng)時鐘
2、創(chuàng)建一個塊符號名為“time”的數(shù)據(jù)塊(DB1),并創(chuàng)建如下變量,如圖7所示:
圖7 創(chuàng)建數(shù)據(jù)塊
3、在需要測試的子程序的第一個網(wǎng)絡(luò)和最后一個網(wǎng)絡(luò)讀取系統(tǒng)時鐘,然后運用時鐘相減指令FC34進(jìn)行計算。
如下例程中測試了“FC1”子程序的執(zhí)行時間,如圖8所示:
圖8 “子程序執(zhí)行時間”例程
4、通過變量監(jiān)控表查看該子程序的大約執(zhí)行時間,如圖9所示:
圖9 子程序大約執(zhí)行時間