姬寧博 李高益 王 冠
(西安工業(yè)大學(xué),陜西 西安710021)
EtherCAT(Ethernet for Control Automation Technology)是一種基于以太網(wǎng)的實(shí)時工業(yè)現(xiàn)場總線通信協(xié)議和國際標(biāo)準(zhǔn)。它具有高速和高數(shù)據(jù)有效率(data ratio)的特點(diǎn),支持多種物理拓?fù)浣Y(jié)構(gòu)。[1]符合該總線的主站采用標(biāo)準(zhǔn)的以太網(wǎng)控制器,通過5 類非屏蔽雙絞線進(jìn)行傳輸交互,物理層上使用網(wǎng)絡(luò)接口卡集成功能。EtherCAT 主站通過純軟件實(shí)現(xiàn),一種是倍福公司自行研發(fā)的TwinCAT 自動化編程開發(fā)軟件,另一種是基于NDIS 的主站以及基于實(shí)施擴(kuò)展的主站[2]。
TwinCAT 是一款由BECKHOFF 自主設(shè)計(jì)開發(fā)的軟件,有控制編程以及可視化操作的功能。不單單適用于Windows 操作系統(tǒng)而且還不需要其他的硬件來支持,將非實(shí)時系統(tǒng)改變?yōu)閷?shí)時性系統(tǒng),適用于高性能、高精度的控制任務(wù)。TwinCAT 可通過對象類別擴(kuò)充組件或者動態(tài)鏈接庫等方式訪問自主設(shè)計(jì)的人機(jī)界面,而且可通過傳輸控制協(xié)議/網(wǎng)際協(xié)議等實(shí)現(xiàn)遠(yuǎn)程訪問。ADS 通訊是通過調(diào)用動態(tài)鏈接庫文件的方式實(shí)現(xiàn)TwinCAT 控制器與上位用戶界面通信的協(xié)議[3]。
TwinCAT 系 統(tǒng) 中,包 括TwinCAT PLC、TwinCAT NC、Windows 應(yīng)用程序等的工作模式類似于硬件設(shè)備,相互之間可以獨(dú)立工作。模塊之間的信息交換通過ADS 完成。ADS(Automation Device Specification)自動化設(shè)備規(guī)范,為設(shè)備之間通訊提供路由[3]。
圖1 人機(jī)界面設(shè)計(jì)
ADS 以傳輸控制協(xié)議/網(wǎng)際協(xié)議為基礎(chǔ),相當(dāng)于網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用層。屬于ADS 設(shè)備通訊使用多種方式,每一種方式都有它獨(dú)特的亮點(diǎn)。異步方式(Asynchronous)——Client 一邊持續(xù)自己的輸出工作,一邊向Server 發(fā)送傳輸請求。Server 把請求處理后,使用Call-back 函數(shù)的方式重新發(fā)給Client。通知方式(Notification)——Client 向Server 發(fā) 送 傳 輸 請 求,Server 使 用Call-back 函數(shù)的方式不斷向Client 發(fā)送響應(yīng),直到Server 中止這個請求。
TwinCAT 提供多種接口組件用于ADS 通訊,ADS .NET Component、ADS-OCX、ADS-DLL。
TwinCAT ADS 訪問的其中一種方式是地址方式——一個PLC 變量的地址由兩部分組成:分組索引和偏移量索引:分組索引是用來區(qū)別寄存器的類型,是一個常量,。偏移量索引是變量的偏移地址,可以確定在PLC 中為變量的地址。另一種方式是變量名方式——在TwinCAT PLC 程序里邊中任意變量都有一個專屬句柄,使用變量名訪問變量首先捕獲它的句柄,然后讀寫操作,最后釋放句柄。
圖2 I/O 變量鏈接
圖3 onlion 界面實(shí)時監(jiān)控
圖4 實(shí)驗(yàn)板現(xiàn)象
總體設(shè)計(jì):
設(shè)計(jì)使用VS2017 的MFC 模塊,實(shí)現(xiàn)實(shí)驗(yàn)板通過記數(shù)方式點(diǎn)亮LED 流水燈以及按鍵顯示的設(shè)計(jì)面板。設(shè)計(jì)面板中用到的PLC 程序中任意變量以文件方式存放在上位機(jī)中,根據(jù)變量名稱獲取變量地址信息。
為了得到相應(yīng)PLC 變量的句柄,使用接口函數(shù)“AdsSyncReadWriteReq”,上位機(jī)軟件對PLC 進(jìn)行數(shù)據(jù)讀寫,人機(jī)界面設(shè)計(jì)如圖1 所示。
在運(yùn)行時需要將PLC 程序與開關(guān)量模塊的物理地址完成關(guān)聯(lián),在TwinCAT 的System Manager 下將I/O 變量實(shí)現(xiàn)鏈接,如圖2 所示。
實(shí)驗(yàn)運(yùn)行界面,如圖3 和圖4 所示。
為了實(shí)現(xiàn)上位機(jī)軟件與實(shí)驗(yàn)板通信端口的數(shù)據(jù)傳輸,通訊程序以Visual Studio 作為開發(fā)平臺,設(shè)計(jì)了基于C++程序與TwinCAT PLC 程序之間的傳輸模塊,采用ADS 通訊協(xié)議通信。通過實(shí)驗(yàn)證明,通訊模塊設(shè)計(jì)合理,數(shù)據(jù)傳輸正常、效率高,能夠?qū)崿F(xiàn)人機(jī)界面以及控制系統(tǒng)的數(shù)據(jù)交互,為后續(xù)的上位機(jī)軟件設(shè)計(jì)奠定了基礎(chǔ)。