在當(dāng)今制造業(yè)領(lǐng)域,設(shè)備之間的高效通信已經(jīng)成為提升生產(chǎn)效率的關(guān)鍵。在我們最近的項(xiàng)目中,客戶(hù)需要實(shí)現(xiàn)西門(mén)子S7-1200 PLC與多種CANopen設(shè)備(例如電動(dòng)門(mén)控伺服電機(jī)和傳感器)之間的無(wú)縫集成。考慮到不同設(shè)備使用的通信協(xié)議差異,不更換新設(shè)備又能馬上實(shí)現(xiàn)通信功能,我們選擇了Profinet轉(zhuǎn)CANopen網(wǎng)關(guān)來(lái)進(jìn)行協(xié)議轉(zhuǎn)換。這一解決方案不僅簡(jiǎn)化了系統(tǒng)集成過(guò)程,還顯著提高了數(shù)據(jù)傳輸的實(shí)時(shí)性和穩(wěn)定性。
通過(guò)該網(wǎng)關(guān),Profinet信號(hào)能夠順利轉(zhuǎn)化為CANopen協(xié)議,確保了各類(lèi)設(shè)備之間的有效協(xié)作。此過(guò)程不僅減少了手動(dòng)干預(yù)的需求,還提升了系統(tǒng)的可靠性,降低了維護(hù)成本。項(xiàng)目實(shí)施后,客戶(hù)在操作效率和響應(yīng)速度上明顯改善,生產(chǎn)線(xiàn)的靈活性也得到了增強(qiáng)。
下面是一些電腦文本的技術(shù)參數(shù)供參考
NMT模塊控制
只有NMT-Master節(jié)點(diǎn)能夠傳送
NMT Module Control報(bào)文。所有從設(shè)備必須支持
NMT模塊控制服務(wù)。NMT Module Control消息不需要應(yīng)答。
NMT消息格式如下:
當(dāng)Node-ID=0,則所有的NMT從設(shè)備被尋址。CS是命令字,可以取如下值:
4.1.1 NMT節(jié)點(diǎn)保護(hù)(NMT Node Guarding)
通過(guò)節(jié)點(diǎn)保護(hù)服務(wù),MNT主節(jié)點(diǎn)可以檢查每個(gè)節(jié)點(diǎn)的當(dāng)前狀態(tài),當(dāng)這些節(jié)點(diǎn)沒(méi)有數(shù)據(jù)傳送時(shí)這種服務(wù)尤其 有意義。
NMT-Master節(jié)點(diǎn)發(fā)送遠(yuǎn)程幀(無(wú)數(shù)據(jù))如下:
數(shù)據(jù)部分包括一個(gè)觸發(fā)位(bit7),觸發(fā)位必須在每次節(jié)點(diǎn)保護(hù)應(yīng)答中交替置“0”或者“1”。觸發(fā)位在第 一次節(jié)點(diǎn)保護(hù)請(qǐng)求時(shí)置為“0”。位0到位6(bits0~6)表示節(jié)點(diǎn)狀態(tài),可為下表中的數(shù)值。
4.1.2?心跳報(bào)文(Heartbeat)
狀態(tài)可為下表種的數(shù)值:
當(dāng)一個(gè)Heartbeat節(jié)點(diǎn)啟動(dòng)后它的啟動(dòng)報(bào)文是其第一個(gè)Heartbeat報(bào)文。Heartbeat消費(fèi)者通常是NMT-Master節(jié)點(diǎn),它為每個(gè)Heartbeat節(jié)點(diǎn)設(shè)定一個(gè)超時(shí)值,當(dāng)超時(shí)發(fā)生時(shí)采取相應(yīng)動(dòng)作。
一個(gè)節(jié)點(diǎn)不能夠同時(shí)支持NodeGuarding和Heartbeat協(xié)議。
4.1.3 NMT Boot-up
NMT-slave節(jié)點(diǎn)發(fā)布Boot-up報(bào)文通知NMT-Master節(jié)點(diǎn)它已經(jīng)從initialising狀態(tài)進(jìn)入pre-operational狀態(tài)。
4.1.4?應(yīng)急指示對(duì)象:
應(yīng)急指示報(bào)文由設(shè)備內(nèi)部出現(xiàn)的致命錯(cuò)誤觸發(fā),由相關(guān)應(yīng)用設(shè)備已最高優(yōu)先級(jí)發(fā)送到其它設(shè)備。
適用于中斷類(lèi)型的錯(cuò)誤報(bào)警信號(hào)。
一個(gè)應(yīng)急報(bào)文由8字節(jié)組成,格式如下:
4.1.5 NMT狀態(tài)控制過(guò)程:
CANopen啟動(dòng)過(guò)程,可以用節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換圖表示這兩種初始化過(guò)程,如下圖所示。
注意:
圖中括號(hào)內(nèi)的字母表示處于不同狀態(tài)那些通訊對(duì)象可以使用。
a.NMT,b.NodeGuard,c.SDO,d.Emergency,e.PDO,f.Boot-up
狀態(tài)轉(zhuǎn)移(1-5由NMT服務(wù)發(fā)起),NMT命令字(在括號(hào)中): 1:Start_Remote_node(0x01)
2:Stop_Remote_Node(0x02) 3:Enter_Pre-Operational_State(0x80) 4:Reset_Node(0x81)
5:Reset_Communication(0x82)
6:設(shè)備初始化結(jié)束,自動(dòng)進(jìn)入Pre_Operational狀態(tài),發(fā)送啟動(dòng)消息
在任何時(shí)候NMT服務(wù)都可使所有或者部分節(jié)點(diǎn)進(jìn)入不同的工作狀態(tài)。NMT服務(wù)的CAN報(bào)文由CAN頭(COB-ID=0) 和兩字節(jié)數(shù)據(jù)組成;第一個(gè)字節(jié)表示請(qǐng)求的服務(wù)類(lèi)型(‘NMTcommandspecifier’),第二個(gè)字節(jié)是節(jié)點(diǎn)ID,或者0(此時(shí)尋址所有節(jié)點(diǎn))。
設(shè)備進(jìn)入準(zhǔn)備狀態(tài)后,除了NMT服務(wù)和節(jié)點(diǎn)保護(hù)服務(wù)(如果支持并且激活的話(huà))外,將停止通訊