西门子PLC的以太网通讯及OPC通讯介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西門子PLC的以太網通訊及OPC通訊介紹
1.以太網通訊
CAL有很多地方用到以太網通訊,L2,焊機與PLC間通訊等,表檢的成像原理為:在金屬板帶表面沒有缺陷時,反射的光在明視場下很強,而在暗視場的散射光很弱;如有缺陷,則明視場的光強減弱,而暗視場的光強增加。根據這個原理,通過檢測攝像頭裡光強的變化,可檢測出材料表面上的一些物理缺陷。CAL 僅僅用到了它的檢測破孔這一個功能。
下面再來看西門子的以太網通訊,使用以太網通訊處理器可能的連接方式:
我們可以看到不同的通訊方式在PLC裏面需要調用不同的功能塊。
像S7-Connection方式連接的,需要調用SFB12/FB12等來讀取發送數據息,而TCP等連接的,需要FC5等來讀取發送數據。
下面簡單介紹下每種連接特點:
Send/receive: iso 連接:ISO傳輸服務通過組態連接提供SEND/REVEICE interface服務在以太網上傳輸數據,此時服務使用的是ISO協議。此通訊速度較快,可是不能實現網絡路由,只能用於局域網通訊。
Send/receive: iso-On-TCP 連接:突破了局域網的限制,可以路由到公網上去;數據重發功能和基於第2層的CRC校驗保證了數據傳輸的完整性和可靠性。
Send/receive: TCP 連接:TCP/IP提供面向連接的數據通訊,數據並不會被打包因而並沒有數據包確認位,在這TCP服務提供了統一的sccket接口到每一個終
端,因而數據塊可以整體發送,這裡區別於iso-On-TCP 連接。
Send/receive: UDP連接:UDP提供簡單數據傳輸,無需確認,與TCP同屬第4層協議。與TCP相比,UDP屬於無連接的協議,數據報文無需確認。
S7通信:S7協議是西門子S7家族的標準通信協議,使用S7應用接口的通信不依賴特定的總線系統(Ethernet,PROFIBUS,MPI)。接口位於ISO-OSI參考模型的第7層,下面圖模型各層的通信方式。
那麼根據表檢的通訊協議規定:
Transmission mode:TCP protocol (not S7), PLC will always be the client , Gauge will always be the server.
Byte order: use PLC Byte Order ( not x86 byte order ).
我們建立通訊就需選擇send/receive中的TCP連接。
因此,在PLC中做如下配置:
1.打開硬件配置->點擊網絡組態:
2. 選擇需要組態網絡的CPU ,右擊選擇插入新連接,選擇TCP Connection ,
當前CAL 是出口的PLC 用於和表檢通訊:
3. 參數設置,只需在Address 一欄設置,其他選項默認:
表檢的端口號根據協議設置,它有三個端口號,因此我們需要配置三條連
接和PLC 通訊:
1. Coil information (Gauge Port 6201)
2. Real-time information (Gauge Port 6202)
3. Real-time defect (Gauge Port 6203)
建立完連接如下:
三路連接區別在與Port 號,其他都是一樣的。此時網絡配置完成,我們需
此處默認值
IP 任意,只要不和其他局域網內電腦衝突。Port 有協議規定
要記下每路連接的ID和地址,在建立的連接屬性中可看到:
這個是第一路連接的配置:
ID:3
地址:16進制3FF6
其他2路ID分別為4和5,
地址都是3FF6
對網絡配置完成後,就需要對程序進行編寫,因為西門下PLC本身支持以太
網通訊,因此可以直接使用它本身的功能塊。
第一路連接,端口號6201,通訊協議如下:
這是PLC發送給表檢的數據,規定了8字節的報頭,20字節的鋼卷號,4字
節鋼卷寬度,4字節鋼卷厚度,4字節鋼卷長度。
其中,報頭格式如下:
此處我們需要處理counter及length,其他兩個可以不用管。Counter是發送依次累加1,length是固定值40(因為共發送40個字節)。
在西門子PLC中,可以直接調用發送數據功能塊:
此處就是上面提
到的第一路的ID
和地址
數據起始位
數據長度
具體定義我們可以按“F1”會彈出幫助信息如下,詳細說明每個引腳如何使用:
幫助信息中功能
塊的引腳定義及
使用說明
上面我們知道第一路連接需要發送40個字節,我們是把它放在DB380這個數據塊中,因此DB380中需要定義如下:
DB380裏面內容完全根據表檢協議來定義,此處不一一例舉。
接下來只需要把數據傳送到DB380就可以了。
數據長度:
DB380.DBW6
每發送依次加1:
DB380.DBW4 鋼卷的信息的傳送現在是在9#BR標誌未處發出下一卷的鋼卷信息:
鋼卷寬度:
DB380.DBD28
鋼卷厚度:
DB380.DBD32
字符串的複製功能塊:把從DB1255的DBB240
開始的20個字節複製到DB380的DBB8開始
的20個字節。由於CAL之前的程序鋼卷號是
定義的字符串string,現在定義的是字符char,
本來應該是DB1255.DBX238.0 BYTE 22,但是
string類型前面2個字節不是真正的數據,因
此需從DB1255.DBX240.0開始
接下來第二路連接,端口號6202,協議定義數據格式如下:
報頭同上,此處需發送焊縫過焊縫檢測後的長度,CAL離表檢最近的焊縫偵
測器是4#,因此在4#處把長度清零,然後一直累加發送:
累加長度是根據9號張力輥編碼器計算得來,程序如下: