運動軸控制類:用RS485通信來讀取絕對值伺服電機的定位操作
操作視頻:
https://www.bilibili.com/video/BV1pf4y1c7Mw/
PLC程序文件與觸摸屏界面程序(百度網(wǎng)盤下載):
https://pan.baidu.com/s/1h8zWfeZstM6G4d6anLhv_A
【正文】
PLC控制伺服電機用到的最多的方式就是脈沖控制,也就是PLC發(fā)送脈沖,伺服驅(qū)動器接收脈沖?,F(xiàn)在呢,我們需要通過modbus協(xié)議,PLC用RS485通信來讀取絕對位置伺服電機的當前位置值。
先了解用RS485通信(以下簡稱485)讀取電機當前位置的作用:
PLC控制伺服電機運動,可以通過編程來設定電機的速度和位移,一旦PLC斷電,再次上電運行時,我們就不能確定電機在PLC掉電前的位置,所以只能做上電回零的處理,那這樣操作的話,設備就必須從頭開始運行。
類似這樣上電回零再運行的設置方式,對于個別行業(yè)是不適用的,因此我們需要記錄PLC掉電前的電機實際位置,所以PLC必須要用到掉電記憶的功能,為了精準的采集到電機的當前位置,就需要PLC的掉電記憶以及跟伺服電機的485通信來達到實時讀取電機位置的目的。
我們現(xiàn)在側重于PLC與絕對位置伺服電機的設置方式。
此處PLC與絕對位置型的伺服電機通信,我們這里以納智伺服電機為例:
一、PLC程序設置:
1.PLC控制伺服電機運行的啟動程序:
在觸摸屏界面做點動啟動,用M1作為電機啟動的按鈕(按鈕功能:交替)。
程序中對應的電機運動方式:按下M1按鈕,電機正轉,松開M1按鈕,電機停止;再按一次M1按鈕,電機反轉,松開M1按鈕,電機停止;如此往復循環(huán)。

2.PLC中的485通信設置程序:
請注意,電機驅(qū)動器內(nèi)部通信數(shù)據(jù)為16進制,PLC的通信數(shù)據(jù)為10進制,所以兩者之間的通信必須要進行進制轉換。
① PLC內(nèi)部Modbus_RTU通信配置:
添加兩條通信程序,如下圖:

指令解析:
序號0:檢測標志M80,M80作為顯示屏上采集伺服電機絕對位置的啟動鍵;本機資料W0,表示將讀取到的電機編碼器位置,保存在PLC的W0寄存器里面;傳輸方向是雙字,讀取,用于讀取伺服電機位置,因為用的W0寄存器來保存位置值的,所以是用雙字節(jié)的讀取方式;從機資料:4xd4127。(詳細說明,見下方進制換算的解說)
其中M80的啟動程序需要用到一個環(huán)編輯,用M0啟動標志M80的程序。
在PLC與電機的通信過程中,用的是標準的modbus協(xié)議,所以是以“次”為單位計算的,每次通信,M80都會自動斷開一次,如果M0一直有信號,就會一直觸發(fā)M80通。
序號1:檢測標志M81,M81作為顯示屏上對電機位置的清零鍵;本機資料G0,表示將清零的數(shù)據(jù)通過寄存器G0直接寫入到電機驅(qū)動器里面,從而實現(xiàn)清零的操作;傳輸方向是寫入,也就是寫入清零的數(shù)據(jù),因為用的是G0寄存器,所以是單字節(jié)的寫入方式;從機資料4x4096。(詳細說明,見下方進制換算的解說)
二、伺服電機參數(shù)對照-進制換算:伺服電機的數(shù)據(jù)是16進制,需要換算成10進制數(shù)據(jù),才能對應到PLC,從而實現(xiàn)通信。
1、PLC讀取伺服電機的絕對位置設置:
這個數(shù)據(jù)是讀取伺服電機絕對位置的,我們需要將16進制的0x101F,換算成10進制的數(shù)據(jù),再寫進PLC程序中。
進制換算小助手
進制換算可以借助電腦的智能計算器 ??????

???

選擇進入“程序員”的界面后,直接在“HEX”這一欄中輸入101F,計算器的“HEX”一欄,表示16進制,在這里輸入伺服電機的位置地址單元101F(地址單元是0x101F,只要輸入101F);。

輸入101F后,下面的“DEC”一欄就會自動的生成相對應的10進制地址值:4127,也就是PLC通過485方式讀取的位置地址,在PLC中是0x4127,編輯程序的時候?qū)⒌刂分祵懗?127即可。
對應的PLC程序解析:

電機的多圈位置,是32位地址,對應到PLC的數(shù)據(jù)必須要用到雙字節(jié),PLC內(nèi)部關于位置的雙字節(jié)寄存器就是W32位寄存器,也就是用到W寄存器顯示電機的絕對位置。
①M80:實時讀取的啟動鍵;
②主機資料:0,表示寄存器的ID;
③數(shù)據(jù)類型:選擇的是:雙字;寫4xD,這個對應的是PLC的W32位寄存器,因為W寄存器是雙字節(jié)的,所以表示W(wǎng)寄存器;對應到主機資料0,這條指令就是用的W0寄存器。
④從機資料:4127,就是PLC讀取的伺服電機位置的10進制地址值;
2、伺服電機多圈位置清零設置:

多圈位置清零:伺服驅(qū)動器對應的清零地址單元是0x1000,清零寫入的數(shù)據(jù)是0x1111。
用智能計算器進行進制換算,寫入PLC內(nèi)部通信的10進制的地址以及數(shù)據(jù),分別是:

進制換算小助手
進制換算可以借助電腦的智能計算器 ??????
1>地址換算:伺服電機驅(qū)動器清零對應地址是0x1000。

計算器的“HEX”一欄,表示16進制,在這里輸入伺服電機的清零地址單元1000(地址單元是0x1000,只要輸入1000);
輸入1000后,下面的“DEC”一欄就會自動的生成相對應的10進制地址值:4096,也就是PLC通過485方式讀取的清零地址,在PLC中是0x4096,編輯程序的時候?qū)⒌刂分祵懗?096即可。
對應的PLC程序解析:

添加指令后,只要填寫屬性中打勾部分的參數(shù),其他的默認。
①M81:清零鍵
②主機資料:0,表示寄存器的ID;
③數(shù)據(jù)類型:選擇的是:字;寫4x,這個對應的是PLC的G_16位寄存器,因為G寄存器是單字節(jié)的,所以表示G寄存器;對應到主機資料0,這條指令就是針對G0的數(shù)據(jù)寫入。
④從機資料:4096,就是PLC識別的伺服電機清零位置的10進制地址值;
2>數(shù)據(jù)換算:伺服電機驅(qū)動器清零對應數(shù)據(jù)是0x1111。

伺服電機清零的數(shù)據(jù)是0x1111換算成十進制就是4369,也就是G0的數(shù)值是4369,我們可以直接在寄存器值那里填寫4369。

以上所述,讀取絕對值伺服電機的位置以及清零多圈位置,也就是PLC的寄存器W0顯示電機的絕對位置,寄存器G0數(shù)據(jù)表示清零。這樣對應寫好,就能實現(xiàn)對絕對式伺服電機的位置讀取以及對電機的多圈位置清零的操作。
請注意,必須填寫對應的數(shù)據(jù),否則讀取或者清零都是無效的。
將設置好程序下載進PLC,PLC與伺服電機用485通信線連接,就可以檢驗設置的成果了。
操作視頻:
https://www.bilibili.com/video/BV1pf4y1c7Mw/
PLC程序文件與觸摸屏界面程序(百度網(wǎng)盤下載):
https://pan.baidu.com/s/1h8zWfeZstM6G4d6anLhv_A
JENASI_PLC
婁底市簡思工控有限公司研發(fā)的新一代可編程PLC
不同于傳統(tǒng)PLC基于繼電器電路的梯形圖編程方法
基于控制流程采用電腦中文指令進行編程
具有編程簡易,維護方便的特點