1 引言
plc和變頻器是自動(dòng)化設備上最常見(jiàn)的部件。其最初的控制型式大多是用plc的i/o點(diǎn)和模擬量模塊直接控制變頻器的啟停和實(shí)現調速,但這種控制方式有兩大弊端,最大的弊端是占用plc的i/o點(diǎn)和需要增加昂貴的模擬量模塊,造成控制成本的增加。當被控制的變頻器數量較多時(shí),此弊端更是明顯。第二個(gè)弊端是模擬量控制容易受干擾,傳輸距離也容易受限制。
近幾年來(lái)自動(dòng)化產(chǎn)品不斷更新?lián)Q代,性能不斷提升,功能日益強大。在小型plc方面這個(gè)變化更加明顯,現在的小型plc不僅執行速度大大提高,指令功能日益豐富,更重要的是大都支持多種通訊協(xié)議,并提供了更多的通訊接口。同時(shí)大多的變頻器也具有了rs485接口,也能支持多種通訊協(xié)議,最常見(jiàn)的就是modbus協(xié)議。這種技術(shù)的進(jìn)步為plc和變頻器通訊的實(shí)現,提供了軟件上的協(xié)議和硬件上的物理接口,從而為低成本高性能的通訊控制的實(shí)現打下了良好的基礎。
2 通訊相關(guān)的基礎知識
2.1 通訊協(xié)議communications protocol
通信協(xié)議是指通信雙方的一種約定。這個(gè)約定包括對數據格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問(wèn)題做出統一規定,通信雙方必須共同遵守。因此,也叫做通信控制規程,或稱(chēng)傳輸控制規程。
modbus協(xié)議是工業(yè)控制器中使用較普遍的一種網(wǎng)絡(luò )協(xié)議。通過(guò)此協(xié)議,各種控制器之間(比如plc、變頻器、伺服驅動(dòng)器、各種智能儀表)、控制器通過(guò)其它網(wǎng)絡(luò )(比如以太網(wǎng))和其它設備之間都可以通信交換信息。該協(xié)議定義了一個(gè)控制器可以識別的信息架構,從而使不同廠(chǎng)商生產(chǎn)的支持此協(xié)議的各種工控產(chǎn)品可以連接到一個(gè)網(wǎng)絡(luò )上進(jìn)行集中控制和信息交換。
2.2 rs485接口的特點(diǎn)
rs485接口是在大家熟知的rs232接口的基礎上推出的性能更優(yōu)的一種串口。由于rs485接口具有良好的抗噪聲干擾性,長(cháng)的傳輸距離和多站功能等優(yōu)點(diǎn),它成為應用越來(lái)越廣泛的串行接口。 此外,rs485接口組成的半雙工網(wǎng)絡(luò )一般只需二根屏蔽雙絞電線(xiàn),這為長(cháng)距離的通訊線(xiàn)路節省了很多配線(xiàn),降低了系統的成本。
3 臺達plc和變頻器通訊功能的特點(diǎn)
臺達的dvp系列plc都具有兩個(gè)通訊口,com1是rs232,com2是rs485,支持modbus ascii/rtu通訊格式,通訊速率最高可達115200bps,兩通訊口可以同時(shí)使用。所以無(wú)需用任何擴展模塊就可以實(shí)現既可連接用于參數設置的人機界面又可用通訊的方式控制變頻器等其它設備。并且dvp系列plc提供了針對modbus ascii/rtu模式的專(zhuān)用通訊指令,這樣在編寫(xiě)通訊程序時(shí)就可以大大簡(jiǎn)化,無(wú)需像用串行數據傳送指令rs那樣要進(jìn)行復雜的校驗碼計算和遵循復雜的指令格式。
臺達的vfd系列變頻器內建有單獨的rs485串聯(lián)通訊界面,并且也遵循modbus ascii/rtu通訊格式(vfd-a系列除外)?;c以上特點(diǎn),臺達的plc和變頻器之間可以有三種方式的通訊控制。一是用串行通訊rs指令,但這種通訊方式要遵守特定的指令格式和進(jìn)行復雜的校驗計算,比較繁雜,本文不作說(shuō)明。二是利用dvp系列plc提供的modbus專(zhuān)用通訊指令實(shí)現,這個(gè)功能適用于全系列的dvp系列plc。三是利用dvp系列plc的easy plc link功能來(lái)實(shí)現,這個(gè)功能適用除es/ex/ss外的其它系列plc。本文就講述以后兩種方式的通訊功能的實(shí)現。
4 實(shí)現plc和變頻器通訊時(shí)的準備工作
4.1 plc相關(guān)通訊口通訊格式的設置方法
臺達dvp系列plc的每一個(gè)通訊口都對應有相關(guān)的特殊寄存器d和特殊繼電器m,以進(jìn)行通訊相關(guān)的參數設置和信息的傳送。本文中要使用的com2對應的主要特d特m及其意義見(jiàn)表1。
表1 特殊寄存器和特殊繼電器的意義
表1中的d1120是16位的寄存器,通過(guò)程序設置此寄存器的數值,以便使plc的通訊協(xié)議與待通訊的從機協(xié)議一致。d1120中各數據位代表的意義如表2所示,使用delta的專(zhuān)用modbus通訊指令時(shí)d1120高8位的數據可以不設置,可以看作全為0。比如我們要用的通訊格式為:7位數據長(cháng)、偶數、1位停止位(亦即常說(shuō)的協(xié)議為:7e1),通訊速率為9600,則通過(guò)此圖表我們可以知道d1120中的數據為:0000 0000 1000 0110,即d1120=h86。這樣在編通訊程序時(shí)把h86寫(xiě)入d1120,然后set m1120,就設定好了plc com2口的通訊協(xié)議。
表2 d1120中各數據位代表
4.2 進(jìn)行通訊時(shí)變頻器需要設定的相關(guān)參數及需要使用的通迅地址
變頻器需要設定的參數及說(shuō)明見(jiàn)圖表3。如果進(jìn)行變頻器的通訊控制時(shí)必需設定這些參數,并且設定值要和plc的d1120值設置一致。
表3 變頻器需設置參數表

當plc對變頻器通訊進(jìn)行數據的寫(xiě)入和讀出時(shí),就需要知道變頻器所定義的相關(guān)功能的地址。然后依據這些地址進(jìn)行數據寫(xiě)入和讀出,才能實(shí)現對變頻器的控制和得到變頻器的當前信息。vfd-m系列變頻器定義的本通訊實(shí)例中需用到的字址及其意義如表4所示。根據此表可以知道,當需要變頻器以20hz正向運轉時(shí),就只需在變頻器通訊相關(guān)的參數字址2000h寫(xiě)入:0000 0000 0001 0010,即十六進(jìn)制的h12或十進(jìn)制的k18;在2001h中寫(xiě)入k2000。
表4 變頻器的通訊參數字址定義

4.3 plc和變頻器間的通信線(xiàn)的連接
變頻器通訊接口各腳分布及定義如圖1所示。當與plc進(jìn)行rs485通訊時(shí),僅需使用編號為3和4的腳,其中3腳和plc的rs485接口的-相連,4腳與rs485口的+相連即可。變頻器接口為rj-11接口,和常用的電話(huà)機的接口是相同的,而plc端是普通接線(xiàn)端子埠,因此通訊線(xiàn)的制作非常簡(jiǎn)單,無(wú)需用專(zhuān)用接口焊接通訊線(xiàn)。筆者曾用從電話(huà)機上拆下的一段電話(huà)線(xiàn)實(shí)現了plc與變頻器間的通訊。

圖1 變頻器rs-485接口各腳定義
5 用modrw指令實(shí)現plc對變頻器的通訊控制
modrw指令是dvp系列plc提供的modbus數據讀寫(xiě)指令,此指令適于dvp全系列plc。因此可以利用低端的es主機完成與變頻器的通訊控制,實(shí)現控制系統的最佳性?xún)r(jià)比配合。本通訊實(shí)例就以es系列plc控制vfd-m變頻器,以實(shí)現多段速的調速操作。
modrw指令格式為:modrw s1 s2 s3 s n。s1為聯(lián)機裝置的地址,與變頻器通訊時(shí)即為參數p88的設置值。s2為通訊功能碼,此指令支持三個(gè)功能碼,即h03(讀取多筆命令)、h06(單筆數據寫(xiě)入命令)、h10(多筆數據寫(xiě)入命令)。s3為欲讀寫(xiě)的通訊從機的地址。s為欲讀寫(xiě)的數據的存儲地址。n是欲讀寫(xiě)的數據長(cháng)度,es系列plc當為ascii 模式時(shí)此值設定范圍是k1-k8,當為rtu模式時(shí)為k1-k16。
本通訊實(shí)例是利用plc對變頻器進(jìn)行多段速調速控制,以實(shí)現一個(gè)單軸定位操作。其實(shí)現過(guò)程是這樣的,自動(dòng)動(dòng)作開(kāi)始時(shí),plc以通訊的方式讓變頻器帶動(dòng)電機高速運轉,用plc的高速計數器接收機械運轉的位置信息,然后通過(guò)對位置信息的判斷,實(shí)現在接近設定位置時(shí)變頻器帶動(dòng)電機減速運動(dòng),直到最后位置到達時(shí)停止,以實(shí)現定位功能。實(shí)現此功能的plc程序主要分三個(gè)部分,其一是高速計數程序及比較輸出,其二是根據高速計數器的比較輸出準備待通訊的數據,其三就是通訊程序。第一部分不是本文討論范圍,第二部分和第三部分的例子程序見(jiàn)圖2、圖3。

圖2 待通訊數據寫(xiě)入程序

圖3 通訊程序
6 用easy plc link功能實(shí)現plc與變頻器的通訊
臺達的plc link功能是以modbus通訊協(xié)議為基礎來(lái)進(jìn)行數據讀寫(xiě),其特點(diǎn)是進(jìn)行數據讀寫(xiě)時(shí)不需要特殊應用指令,只需用mov指令進(jìn)行數據交換。eh/eh2/sv plc作主站時(shí)支持m1353=on,可啟動(dòng)32臺link功能及超過(guò)16筆讀寫(xiě)功能;sa/sx/sc主機僅支持16臺link功能及16筆讀寫(xiě)功能。但能控制16臺主機的能力就足以應付大多簡(jiǎn)單控制系統。用plc實(shí)現 link功能時(shí)同樣需要讓主從設備的通訊口的通訊格式設置一致,所設置的方法同前文所述。
進(jìn)行plc link讀寫(xiě)從站數據時(shí),作為主站的plc其它需要設置的項目如表5所示。
表5 plc link時(shí)需設置的寄存器

知道上述這些需要設置的數據,就可以編寫(xiě)plc與從機間實(shí)現link功能的程序了。本例以sa plc作主機控制vfd-m變頻器實(shí)現上例所述之多段速控制功能。例子程序如圖4、圖5所示,變頻器的設置及通訊線(xiàn)的連接和上例相同。圖4為待通訊數據的寫(xiě)入,與上例一樣,通過(guò)對高速計數器接收的位置信息的比較結果,寫(xiě)入相應數據,以調節變頻器的輸出頻率和動(dòng)作。圖5為link 相關(guān)程序,其中m1351 on是啟動(dòng)link為自動(dòng)模式,m1350 on為link功能開(kāi)始。

圖4 link時(shí)待寫(xiě)入數據準備程序

圖5 link通訊程序
7 結束語(yǔ)
從兩個(gè)通訊實(shí)例可以看出,臺達的plc和變頻器間實(shí)現高性能的通訊控制非常簡(jiǎn)單容易,且性?xún)r(jià)比極高,值得推廣應用。但需要注意的是由于rs485口是半雙工工作模式,因此當程序中有多條通訊程序段時(shí),一定不能出現兩個(gè)或以上的通訊程序同時(shí)被執行的情況。
聯(lián)系客服