價(jià)格
電議
型號
西門子代理商
品牌
重慶暑鴻自動化設(shè)備有限公司
所在地
渝北區(qū)
更新時(shí)間
2020-07-06 10:40:03
瀏覽次數(shù)
次
其他推薦產(chǎn)品
首頁| 關(guān)于我們| 聯(lián)系我們| 友情鏈接| 廣告服務(wù)| 會員服務(wù)| 付款方式| 意見反饋| 法律聲明| 服務(wù)條款
產(chǎn)品:siemens/西門子
產(chǎn)品規(guī)格:全新原裝
產(chǎn)品:保證
產(chǎn)品價(jià)格:價(jià)格優(yōu)勢
公司大量現(xiàn)貨?。?!
【同樣的價(jià)格、同樣的、給您不一樣的服務(wù)】
重慶暑鴻自動化設(shè)備有限公司(西門子集成商)銷售西門子S7-200/300/400/1200PLC、數(shù)控、變頻器、人機(jī)界面、屏、伺服、電機(jī)、西門子電纜等,并可提供西門子服務(wù),歡迎來電垂詢
地址:重慶市渝北區(qū)財(cái)富大道2號12-4
概述
S7-1200 與 S7-300 之間的以太網(wǎng)通信比較多,可以采用ISO on TCP、TCP和 S7 的進(jìn)行通信。在S7-1200 CPU 中采用ISO on TCP和TCP這兩種協(xié)議進(jìn)行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, SCON, TSEN, TRCV ) 指令編程。S7-300 CPU一側(cè)如果使用的是CPU集成的PN接口,連接不在STEP7的NetPro中建立連接,而是使用西門子提供的OPEN IE 的來實(shí)現(xiàn)。
本文主要介紹了如何實(shí)現(xiàn)在S7-1200 和S7-300 CPU集成PN口之間的ISO on TCP通信,包括通信的基本步驟、配置及編程等內(nèi)容。具體的實(shí)現(xiàn)有多種,比如在S7-1200中可以使用不帶連接的通信指令(TCON, SCON, TSEN, TRCV),也可以使用帶連接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能塊編程的來實(shí)現(xiàn),也可以使用Open Communication Wizard工具(OPEN IE向?qū)В┑膩斫PEN IE的通信。
為了方便理解,本文在S7-1200中使用不帶連接的通信指令TCON, SCON, TSEN, TRCV,在S7-300側(cè)通過功能塊編程的來實(shí)現(xiàn)。
關(guān)于S7-1200和S7-300 OPEN IE通信的文檔可以登錄西門子自動化與驅(qū)動集團(tuán)網(wǎng)站的下載中心,網(wǎng)址:http://www.ad.siemens.com.cn/download/ ,根據(jù)如表1提供的文檔編號搜索并下載相關(guān)文檔。
表1 下載中心文檔列表
2 軟硬件及所要完成的通信任務(wù)
2.1硬件設(shè)備
2.2
2.3 所要完成的通信任務(wù)
本例中所要完成的通信任務(wù)定義為:
1、 將S7-1200的發(fā)送數(shù)據(jù)塊DB3里的8個(gè)字節(jié)數(shù)據(jù)發(fā)送到S7-300的DB3中。
2、 將S7-300 DB3里接收到的8個(gè)字節(jié)數(shù)據(jù)再發(fā)送到S7-1200的接收數(shù)據(jù)塊DB4中。
3 S7-1200 CPU的組態(tài)編程
3.1創(chuàng)建新項(xiàng)目
圖1 添加新的PLC站
為了編程方便,我們使用 CPU 屬性中定義的時(shí)鐘位,定義如下:
在“Project tree> PLC_1 > Device configuration” 中,選中 CPU ,然后在下面的屬性窗,“Properties > System and clock memory” 下,將位定義在MB1,時(shí)鐘位定義在MB0,如圖2所示。程序中我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個(gè)位,可以使用它去自動發(fā)送任務(wù)。
圖2 和時(shí)鐘存儲器
圖3為 S7-1200 CPU的PROFINET 接口分配IP地址
3.2調(diào)用并配置通信指令
圖4 調(diào)用TCON指令
圖5 “TCON” 指令的連接參數(shù)
圖6 “TCON” 的塊參數(shù)
圖7 創(chuàng)建一個(gè)發(fā)送數(shù)據(jù)塊DB3
打開創(chuàng)建的發(fā)送數(shù)據(jù)塊,在數(shù)據(jù)塊中定義發(fā)送數(shù)據(jù)區(qū)為 8個(gè)字節(jié)的數(shù)組,如圖8所示。
圖8 創(chuàng)建發(fā)送數(shù)據(jù)區(qū)
然后在OB1 中調(diào)用“TSEND”發(fā)送通信指令,并為“TSEND”**參數(shù)。使用M0.3( 2Hz 的時(shí)鐘脈沖)上升沿發(fā)送任務(wù),**發(fā)送數(shù)據(jù)區(qū)為P# DB3.DBX0.0 BYTE 8,連接 ID = 1與連接參數(shù)里面的設(shè)置相同,發(fā)送長度LEN=8。分配好參數(shù)的“TSEND”塊如圖9所示。
圖9 調(diào)用“TSEND”發(fā)送通信塊
圖10創(chuàng)建接收數(shù)據(jù)區(qū)
圖11 調(diào)用“TRCV”接收通信塊
圖12 調(diào)用“SCON”通信塊
3.3下載程序
至此,S7-1200側(cè)的組態(tài)和編程都已經(jīng)完成,可以在項(xiàng)目編譯無錯誤后,直接下載到S7-1200 CPU中,并啟動CPU的運(yùn)行。
4 S7-300 CPU的組態(tài)編程
S7-300帶PN接口的CPU支持ISO on TCP通信功能,通過該集成以太網(wǎng)接口組態(tài)ISO on TCP通信時(shí),只能使用開放式通信的功能塊,這些的功能塊可以在STEP7 “ 通訊塊”的 “庫 ”中找到,如圖13所示。
圖13 S7-300 CPU通信指令庫
要通過CPU 的 集成PN 接口實(shí)現(xiàn)開放的ISO on TCP通信,不能在Netpro網(wǎng)絡(luò)組態(tài)中直接建立連接,必須通序**每個(gè)連接的參數(shù)。用于通信的FB功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔《A0284 使用西門子PLC集成的PN口實(shí)現(xiàn)S5 兼容通信使用入門》提供的例程。下載鏈接:80490650
4.1創(chuàng)建新項(xiàng)目
圖14為PN接口分配IP地址
圖15設(shè)置時(shí)鐘存儲器字節(jié)
4.2編寫通信程序
圖 16
圖17
圖18
然后在生成的FB400中調(diào)用FB420,如圖19所示。
圖19
圖20
然后再在OB1中依次調(diào)用通信功能塊FB65、FB64、FB63、FB66。其中發(fā)送和接收功能塊FB64、FB63的數(shù)據(jù)區(qū)都為DB3,建立DB3如圖21所示。關(guān)于塊的使用請參考STEP7的在線幫助或相關(guān)文檔說明。
圖21
FB65 “TCON”,建立連接功能塊,如圖22所示。通過輸入?yún)?shù) "REQ"一個(gè)上升沿來建立連接。 “ID” 為連接ID,“CONNECT” 參數(shù)填寫用 UDT65 生成的變量, 連接建立后會一直保持,直到調(diào)用FB66 "SCON" 斷開連接、CPU停止或者斷電。其中CONNECT**為通過UDT65生成的DB塊,即DB101, ID = 1。通過M8.0啟業(yè),執(zhí)行連接的建立。
圖22
FB64 “TRCV”,接收功能塊,如圖23所示。"TRECV" EN_R始終為TRUE, ID 填寫連接ID,”DATA” 填寫接收數(shù)據(jù)區(qū),輸出參數(shù) "NDR" 用于表示新的數(shù)據(jù)已經(jīng)收到,輸出參數(shù) "LEN" 表示接收的數(shù)據(jù)長度。本例中連接ID = 1。**DB3作為接收數(shù)據(jù)塊,接收數(shù)據(jù)的字節(jié)長度為8,接收作業(yè)通過M8.1使能。
圖23
FB63 “TSEND”,發(fā)送功能塊,如圖24所示。連接ID = 1。**DB3為發(fā)送數(shù)據(jù)塊,發(fā)送字節(jié)長度為8,發(fā)送作業(yè)通過M0.3觸發(fā)。"TSEND" 發(fā)送請求依靠輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn),如果“BUSY”位為true時(shí)不要觸發(fā)"REQ"。輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。
圖24
FB66 “SCON”,取消連接功能塊,如圖25所示??梢愿鶕?jù)需要取消ID=W#16#1的連接,作業(yè)通過M8.2使能。
圖25
4.3下載程序
S7-300側(cè)的組態(tài)和編程都完成后,直接下載到S7-300 CPU中,并啟動CPU的運(yùn)行。
5 監(jiān)控通信結(jié)果
對S7-1200和S7-300都組態(tài)和編程后,下載所有組態(tài)及程序并搭建好網(wǎng)絡(luò)后,首先在在S7-1200中將M8.0置位為1,然后再在S7-300中將M8.0置位為1,兩個(gè)站的“TCON” 被,建立兩個(gè)站之間的ISO on TCP連接。
連接正常建立后,即可以進(jìn)行數(shù)據(jù)的交換。在S7-1200和S7-300站中將 ”TRCV” 功能塊的EN_R置位為1,使能接收,監(jiān)控通信結(jié)果如圖26所示。
通過監(jiān)控結(jié)果可以看到,S7-1200中發(fā)送數(shù)據(jù)塊DB3的8個(gè)字節(jié)數(shù)據(jù)被發(fā)送到S7-300站的DB3中,同時(shí),S7-300的DB3中接收到的數(shù)據(jù)又被發(fā)送到S7-1200的接收數(shù)據(jù)塊DB4中。
圖26 在線監(jiān)控通信結(jié)果
描述
對于 SIMATIC S7-1200,從 CPU V2.0固件開始,STEP 7 (TIA-Portal) 提供 T_CONFIG 指令可以通過編程控制 CPU 集成 PROFINET 接口的配置。
圖. 01
可以設(shè)置如下接口配置:
配置數(shù)據(jù)存儲在 "Conf_Data" 結(jié)構(gòu)體數(shù)據(jù)類型中。
圖. 02
以PLC數(shù)據(jù)類型創(chuàng)建 "Conf_Data" 結(jié)構(gòu)體數(shù)據(jù)類型。
它包含**的數(shù)據(jù)類型:
說明
正確使用 T_CONFIG 指令需要注意以下幾點(diǎn):
下列設(shè)置可以被改變:
必須選擇"... using a different method".
圖. 03
取決于是否只修改接口地址還是也要修改PROFINET 設(shè)備名,必須設(shè)置 header 數(shù)據(jù)類型 IF_CONF_Header 中的 "SubfieldCount" 參數(shù)值為 "1" 或 "2" (= 結(jié)構(gòu)體中的所有子域) (見圖. 02).
圖. 04
要遵從PROFINET名字的命名規(guī)則(如, 多240個(gè)小寫字符、數(shù)字、連字號、句號).
PROFINET 名可以短于 240 字節(jié)但必須大于 2 字節(jié)。
必須根據(jù) "PROFINET 名字長度 + 6"來修改 "Length" 變量。
圖. 05
表 01
提示
*告
本條目描述的功能和解決方案主要限于實(shí)現(xiàn)自動化任務(wù)。此外,如果該與工廠其它部分或整個(gè)互聯(lián)網(wǎng)有連接,請注意必須采取適當(dāng)?shù)?措施以遵循相應(yīng)的工業(yè)。更多信息參見條目ID: 50203404.
下載
學(xué) T_CONFIG 指令,可以參考下面的例子項(xiàng)目。
它包含通過操作面板 KTP 600 Basic PN 修改 PROFINET 接口的配置。
當(dāng)T_CONFIG 指令使用時(shí),HMI 通過 "Change connection" 事件與新配置了PROFINET接口的控制器同步建立通訊。
由于 KTP 600 Basic PN 不支持無類別域間路由(CIDR),后的8位組IP地址只能在C類網(wǎng)絡(luò)中修改。
KTP 600 Basic PN 也可以在沒有硬件時(shí)由 STEP 7 V11 模擬。
項(xiàng)目中的 IP 地址如下:
圖. 06
KTP 600 Basic PN 用戶接口包含下列元素:
要進(jìn)行確認(rèn),在 STEP 7 V11 中,可以通過刷新可訪問節(jié)點(diǎn)來檢查 IP 分配,通過"Online & Diagnostics" 下的"Assign name"功能來檢查PROFINET設(shè)備名。
S7-1200存儲卡的基本介紹
S7-1200CPU使用的存儲卡為SD卡,存儲卡中可以存儲用戶項(xiàng)目文件,有如下三種功能:
1. 作為CPU的裝載存儲區(qū),用戶項(xiàng)目文件可以僅存儲在卡中,CPU中沒有項(xiàng)目文件,離開存儲卡無法運(yùn)行。
2. 在有編程器的情況下,作為向多個(gè)S7-1200PLC傳送項(xiàng)目文件的介質(zhì)。
3. 忘記時(shí),**CPU內(nèi)部的項(xiàng)目文件和。
4. 24M卡可以用于更新S7-1200CPU的固件版本
圖1: S7-1200存儲卡
如何存儲卡:
將CPU上擋板向下,可以看到右上角有一MC卡槽,將存儲卡缺口向上,如下圖所示:
圖2:存儲卡
注意:
? 對于S7-1200CPU,存儲卡不是必需的。
? 將存儲卡插到一個(gè)處于運(yùn)行狀態(tài)的CPU上,會造成CPU停機(jī)。
? S7-1200 CPU 僅支持由西門子制造商預(yù)先格式化過的存儲卡,即下列訂貨號產(chǎn)品:
訂貨號
容量
6ES7 954-8LF01-0AA0
24MB
6ES7954-8LC01-0AA0
4MB
6ES7 954-8LB01-0AA0
2MB
表1:存儲卡信息
? 如果使用 WINOOWs 格式化程序?qū)?/span>SIMATIC 存儲卡重新進(jìn)行格式化,CPU將無法使用該重新格式化的存儲卡。
? 目前S7-1200還無法配合存儲卡實(shí)現(xiàn)配方和數(shù)據(jù)歸檔之類的**功能。
2 存儲卡的工作
存儲卡有兩種工作:
? 程序卡:存儲卡作為S7-1200 CPU 的裝載存儲區(qū),所有程序和數(shù)據(jù)存儲在卡中,CPU 內(nèi)部集成的存儲區(qū)中沒有項(xiàng)目文件,設(shè)備運(yùn)行中存儲卡不能被。
? 傳輸卡:用于從存儲卡向CPU傳送項(xiàng)目,傳送完成后必須將存儲卡。CPU可以離開存儲卡運(yùn)行。
修改存儲卡的工作:
在STEP 7 Basic的項(xiàng)目視圖下,左側(cè)”Project View“--->"SIMATIC Card Reader" --->您的讀卡器型號,如下圖所示:
圖3:Project View
右擊存儲卡的盤符(這里是F:),選擇“屬性”,打開下面窗口:
圖4:MC屬性
用戶在“Card type”選擇需要的工作,“OK”完成設(shè)定。
3 使用程序卡的不同
優(yōu)點(diǎn):更換CPU時(shí)不需要重新下載項(xiàng)目文件。
3.1 裝載用戶項(xiàng)目文件到存儲卡:
? **步:按照上面將存儲卡設(shè)定到“編程”。建議客戶做此操作之前**存儲卡中的所有文件。
? **步:設(shè)置CPU的啟動狀態(tài):在"Project tree"中右擊CPU選擇“屬性”,在“屬性”窗“Startup”,此處我們必須選擇“Warm restart-RUN”
圖5: Startup
? 第三步:將CPU斷電。
? 第四步:將存儲卡插到CPU卡槽內(nèi)
? 第五步:將CPU上電
? 第六步:在STEP 7 Basic中下載,將項(xiàng)目文件全部下載到存儲卡中。此時(shí)下載是將項(xiàng)目文件(包括用戶程序、硬件組態(tài)和強(qiáng)制值)下載到存儲卡中,而不是CPU內(nèi)部集成的存儲區(qū)中。
完成上述步驟后,CPU可以帶卡正常運(yùn)行。此時(shí)如果將存儲卡,CPU會報(bào)錯,"ERROR"紅燈閃爍。
3.2 常見問題:
常見問題1:
為什么插上存儲卡后CPU的“MAINT”燈閃爍,使用STEP 7 Basic下載是提示報(bào)錯“The download of the hardware configuration failed (0050 -133 2 2458)”?
回答:
請**存儲卡中的所有文件,重新使用STEP7 Basic將存儲卡設(shè)置到“編程”,然后再重復(fù)上述步驟。請您也檢查存儲的撥碼開關(guān),檢查存儲卡是否處于寫保護(hù)。
常見問題2:
為什么CPU斷電上電后停止?fàn)顟B(tài),而不運(yùn)行狀態(tài)?
回答:
原因是CPU的啟動不是“Warm restart-RUN”,詳細(xì)請參考上面“**步”。
4 使用傳輸卡
優(yōu)點(diǎn):在沒有編程器的情況下,方便快捷地向多個(gè)S7-1200PLC拷貝項(xiàng)目文件。
4.1 向處于傳輸?shù)拇鎯ㄖ醒b載項(xiàng)目
? **步:按照上面將存儲卡設(shè)定到“編程”。建議客戶做此操作之前**存儲卡中的所有文件。
? **步:設(shè)置CPU的啟動狀態(tài):在"Project tree"中右擊CPU選擇“屬性”,在“屬性”窗“Startup”,此處我們必須選擇“Warm restart-RUN”
? 第三步:直接拖拽PLC設(shè)備到存儲卡盤符
圖6:拖拽
用戶也可以直接將一張已經(jīng)做好的“程序卡”更改為“傳輸卡”。
4.2 從存儲卡項(xiàng)目到S7-1200PLC
? **步:將CPU斷電
? **步:插卡到CPU卡槽
? 第三步:將CPU上電,用戶會看到CPU的"MAINT"黃燈閃爍
? 第四步:將CPU斷電,將存儲卡
? 第五步:將CPU上電
常見問題:
為什么CPU斷電上電后停止?fàn)顟B(tài),而不運(yùn)行狀態(tài)?
回答:
1. CPU的啟動不是“Warm restart-RUN”,詳細(xì)請參考上面“**步”。
2. 檢查第三步,必須拖拽PLC項(xiàng)目到存儲卡盤符,而不是程序塊等其他項(xiàng)目內(nèi)容。下載到存儲卡中的項(xiàng)目文件有可能不完整,例如確實(shí)硬件組態(tài)等。
5 使用存儲卡**
如果客戶忘記了之前設(shè)定到S7-1200的,通過”恢復(fù)出廠設(shè)置“無法**S7-1200內(nèi)部的程序和,因此**的**是使用存儲卡。詳細(xì)步驟如下:
1. 將S7-1200設(shè)備斷電
2. 一張存儲卡到S7-1200CPU上,存儲卡中的程序不能有保護(hù)
3. 將S7-1200設(shè)備上電
S7-1200CPU上電后,會將存儲卡中的程序到內(nèi)部的FLASH寄存器中,即執(zhí)行**操作。
客戶也可以用相同的一張全新的或者空白的存儲卡到S7-1200CPU,設(shè)備上電后,S7-1200CPU會將內(nèi)部存儲區(qū)的程序轉(zhuǎn)移到存儲卡中,拔下存儲卡后,S7-1200CPU內(nèi)部將不在有用戶程序,即實(shí)現(xiàn)了**。存儲卡中的內(nèi)容可以使用讀卡器**。
注意:不要格式化存儲卡
6 使用24M存儲卡更新S7-1200CPU的固件版本
S7-1200的固件版本可以從西門子官*網(wǎng)站下載:http://support.automation.siemens.com/WW/view/cn 。用戶可以使用西門子網(wǎng)站右上方的搜索引擎在“Download”分類中搜索“S7-1200 firmware”。
注意:
1. 不同訂貨號的S7-1200CPU的固件文件不相同,下載地址也不相同。用戶在下載和更新固件之前請核對產(chǎn)品訂貨號。
2. 2M存儲卡不能用于CPU固件升級。
3. 固件升級前CPU內(nèi)部存儲的項(xiàng)目文件(程序塊、硬件組態(tài)等)不受影響,不會被**。
4. 如果存儲卡中的固件文件訂貨號與實(shí)際CPU的訂貨號不一致,即使執(zhí)行了下列步驟,CPU的原固件版本也不會改變。
更新CPU的固件具體步驟如下:
? **步:使用電腦通過讀卡器**存儲卡中內(nèi)容。注意:不要格式化存儲卡!
? **步:從西門子官*網(wǎng)站下載版本的固件文件。下載并解壓縮,用戶可以一個(gè)“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾。
? 第三步:將“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾拷貝到存儲卡中。
? 第四步:將存儲卡插到CPU1200卡槽中。此時(shí)CPU會停止,“MAINT”指示燈閃爍。
? 第五步:將CPU斷電上電。CPU的“RUN/STOP”指示燈紅綠交替閃爍說明固件正在被更新中?!?/span>RUN/STOP”指示燈亮,“MAINT”指示燈閃爍說明固件更新已經(jīng)結(jié)束。
? 第六步:存儲卡
? 第七步:再次將CPU斷電上電
概述
本文介紹了通過OPEN IE的實(shí)現(xiàn)S7-1200與SIMOTION D410PN之間的TCP通信的,包括通信的基本配置、組態(tài)和編程等內(nèi)容。S7-1200實(shí)現(xiàn)TCP通訊的指令有兩種,一是不帶連接的指令(TCON,SCON,TSEND,TRCV),另一種是帶連接的指令(T RCV_C,TSEND_C);SIMOTON包含的通信指令包括tcpOpenClient,tcpOpenServe r,tcpSend,tcpReceive,tcpCloseSever,tcpCloseConnection。
本文選用S7-1200不帶連接的指令TCON,SCON,TSEND,TRCV,實(shí)現(xiàn)與D410 PN的通訊。
2 S7-1200與D410PN裝置的連接
2.1 硬件配置列表
設(shè)備
訂貨號
版本
CPU 1214C DC/DC/DC
6ES7214-1AE30-0XB0
V2.2
D410PN
6AU1410-0AB00-0AA0
Version B, FW V4.2
SCANLANCE X208
6GK5208-0BA10-2AA3
V3.1
表1 所采用的硬件列表
2.2 所使用的
§ TIA Portal V11 SP2
§ SCOUT V4.2.1
2.3 通訊參數(shù)設(shè)置
硬件連接配置
圖1 硬件連接示意圖
CPU 1214C和D410PN本身都帶有集成PN口,可以直接使用。
IP 地址設(shè)置(子網(wǎng)掩碼均為255.255.255.0):
DEVICE
IP Address
CPU 1214C
192.168.0.4
D410DP
192.168.0.2
PC
192.168.0.10
表2 IP地址設(shè)置
3 項(xiàng)目配置
3.1 S7-1200的配置
打開TIA Portal,新建一個(gè)項(xiàng)目,在“添加新設(shè)備”中選擇所需的硬件及版本,如圖2所示。
圖2 選擇設(shè)備和版本
打開設(shè)備視圖,設(shè)置設(shè)備“屬性”下的以太網(wǎng)地址為192.168.0.4,子網(wǎng)掩碼為255. 255.255.0。見圖3。
圖3 設(shè)置以太網(wǎng)地址
在設(shè)備視圖的屬性窗設(shè)置時(shí)鐘存儲器,將時(shí)鐘存儲器的地址設(shè)置為MB20,并使用其中的M20.5位,0和1以1Hz切換,用來循環(huán)發(fā)送任務(wù),見圖4。
圖4 時(shí)鐘存儲器設(shè)置
3.2 D410PN的配置
打開SCOUT,新建一個(gè)項(xiàng)目,設(shè)置PG/PC接口為電腦的以太網(wǎng)卡,雙擊“INSERT SIMOTION DEVICE”后,選擇相應(yīng)版本的D410PN,并打開硬件組態(tài)畫面,在其中設(shè)置PN口的以太網(wǎng)地址和子網(wǎng)掩碼,見圖5。
圖5 組態(tài)D410PN地址
4 通信指令
4.1 S7-1200側(cè)的指令調(diào)用
TCON,SCON,TSEND,TRCV等指令均可以在右側(cè)指令中的“通信—〉開放式用戶通信”找到。本文中所有通訊指令均在background 中執(zhí)行。
S7-1200在本文中作為Server,通訊開始前先TCON指令來建立端口,并等待Client的建立連接請求,一旦通信連接建立,此時(shí)“REQ”就不再起作用,若想重新建立連接需先調(diào)用“SCON”斷開連接,再從新“TCON”重新建立連接。
圖6 調(diào)用TCON
“REQ”:TCON功能。
“ID”:設(shè)置所建立連接的ID,以后的TSEND、TRCV、SCON均使用此ID。
“CONNECT”:連接配置DB,在配置完TCON參數(shù)后自動生成。
“Done”:建立連接任務(wù)完成后置1。
“BUSY”:建立連接任務(wù)執(zhí)行中置1。
“ERROR”為1時(shí),在STATUS中顯示錯誤代碼,“ERROR”為0時(shí),在STATUS中顯示指令執(zhí)行狀態(tài)代碼。
當(dāng)連接建立后,通序段2可以將“opensever”置0。
在調(diào)用TCON指令時(shí)會要求設(shè)置連接參數(shù),見圖7。
圖7 TCON連接參數(shù)設(shè)置
“伙伴”:選擇未**。
“地址”:設(shè)置與S7-1200通訊的SIMOTION的地址。
“連接類型”:選擇TCP。
“連接ID”: 發(fā)送、接收和連接斷開所使用的ID。
“連接數(shù)據(jù)”:設(shè)置新建或使用已有的連接DB。
“建立連接”:選擇建立連接的一方為客戶端,另一方為。
“端口”:設(shè)置本地和伙伴的端口號,在SIMOTION的指令中會用到這里。
設(shè)置TCON參數(shù)時(shí)要先選擇“連接數(shù)據(jù)”中的“新建”,建立一個(gè)新的Connection DB,然后再填寫各個(gè)參數(shù)。
在通訊建立后,TSEND,TRCV指令(將發(fā)送指令的“REQ”端置1,將接收指令的“EN_R”置1),用來發(fā)送和接受數(shù)據(jù)。
圖8 TSEND連接參數(shù)設(shè)置
圖9 TRCV連接參數(shù)設(shè)置
注意:
(1) 在建立“DATA”中要的發(fā)送數(shù)據(jù)和接受數(shù)據(jù)DB時(shí),其塊訪問的必須是“-與S7-300/400兼容”,否則在該指令時(shí)會報(bào)錯,見圖10。
(2) TSEND與TRCV的“ID”必須與TCON中設(shè)置的相同,而此“ID”與SIMOTION中的“ID”未必相同。
(3) TRCV在接收數(shù)據(jù)后,“NDR”會自動置1,且“RCVD_LEN”會顯示接收到的數(shù)據(jù)長度。
圖10 數(shù)據(jù) DB建立
若要斷開當(dāng)前連接,則調(diào)用SCON。斷開連接后,根據(jù)程序段6,“dis con”位會被重新置0。
圖11 SCON連接參數(shù)設(shè)置
4.2 SIMOTION側(cè)的指令調(diào)用
SIMOTION的通信指令可以在Command library中的“Communication->Data transfer”目錄下找到。通信程序塊“TCP”background中運(yùn)行。
tcpOpenClient指令,該指令用來在simotion 側(cè)客戶端端口,并向發(fā)送連接請求,若請求,則建立連接,并返回連接ID。該指令需使用上跳沿單次觸發(fā),此函數(shù)只調(diào)用一次,連接ID后應(yīng)停止調(diào)用。
圖12 tcpOpenClient指令參數(shù)設(shè)置
“port”:設(shè)置simotion本地端口號。
“severAddress”:設(shè)置通訊(S7-1200)地址(192.168.0.4)。
“serverport”:設(shè)置(S7-1200)端口號,必須與S7-1200組態(tài)中設(shè)置的相同。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE,有可能在該命令執(zhí)行時(shí)間過長情況下background執(zhí)行時(shí),報(bào)錯停機(jī)。
“OUT”:函數(shù)調(diào)用返回信息,包括執(zhí)行狀態(tài)和返回的連接ID,后面的發(fā)送和接收指令均使用該ID。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpOpenClient),參考表3。
結(jié)構(gòu)
名稱
數(shù)據(jù)類型
functionResult
狀態(tài)信息,查看
連接是否建立
DINT
connectionId
連接號
DINT
表3 TcpOpenClient返回值結(jié)
TcpSend指令用于發(fā)送數(shù)據(jù),與S7-1200的接收指令相對應(yīng),可循環(huán)調(diào)用。
圖13 TcpSend參數(shù)設(shè)置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE,有可能在該命令執(zhí)行時(shí)間過長情況下background執(zhí)行時(shí),報(bào)錯停機(jī)。
“DataLength”:發(fā)送數(shù)據(jù)的字節(jié)長度,本例為8,發(fā)送數(shù)據(jù)區(qū)的前8個(gè)字節(jié)。
“Data”:發(fā)送數(shù)據(jù)區(qū),數(shù)據(jù)類型為數(shù)組,ARRAY[0..4095] OF BYTE。
“OUT”:輸出通信狀態(tài)。
注意:SIMOTION的發(fā)送區(qū)(接收區(qū))與PLC的接收區(qū)(發(fā)送區(qū))數(shù)據(jù)長度必須一致。
TcpReceive指令用于發(fā)送數(shù)據(jù),與S7-1200的接收指令相對應(yīng),可循環(huán)調(diào)用。
圖14 TcpReceive參數(shù)設(shè)置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行。
WHEN_COMMAND_DONE:命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行。
本文中將程序simotion的background中執(zhí)行,因此若使用WHEN_COMMAND_DONE,有可能在該命令執(zhí)行時(shí)間過長情況下background執(zhí)行時(shí),報(bào)錯停機(jī)。
“receivevarible”:接收數(shù)據(jù)區(qū),數(shù)據(jù)類型為數(shù)組,ARRAY[0..4095] OF BYTE。
“OUT”:調(diào)用函數(shù)返回信息,包括調(diào)用狀態(tài)和接收的字節(jié)數(shù)量。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpReceive),參考表4。
結(jié)構(gòu)
名稱
數(shù)據(jù)類型
functionResult
接收狀態(tài)信息
DINT
dataLength
接收字節(jié)長度
UDINT
表4 TcpReceive返回值結(jié)構(gòu)
5 實(shí)驗(yàn)
本例中使用的程序可以在“S7-1200.zip (1350 KB) ( 1350 KB )”和“D410.zip (1597 KB) ( 1597 KB ) ”這兩個(gè)壓縮包中找到。
首先在S7-1200側(cè)建立連接的指令“TCON”,等待SIMOTION側(cè)的連接請求,接著在SIMOTION側(cè)打開客戶端指令“TcpOpenClient”,發(fā)送建立連接的請求。請求后,“TcpOpenClient”的返回值結(jié)構(gòu)中的functionResult會顯示“0”,同時(shí)在connec tionId中會返回ID(此ID與PLC中設(shè)置的ID未必一致)。
之后分別使能PLC側(cè)和SIMOTION側(cè)的發(fā)送接收指令,開始數(shù)據(jù)傳送。
SIMOTION側(cè)WATCH TABLE監(jiān)控結(jié)果:
圖15 SIMOTION側(cè)接收和發(fā)送的數(shù)據(jù)
PLC側(cè)監(jiān)控表的監(jiān)控結(jié)果:
圖16 PLC側(cè)接收和發(fā)送的數(shù)據(jù)