前言
最近在學(xué)習(xí)西門(mén)子PLC的高速計(jì)數(shù)器指令和運(yùn)動(dòng)控制部分,是用運(yùn)動(dòng)控制軸輸出 頻率為10kHz,AB相正交信號(hào)的一萬(wàn)個(gè)脈沖信號(hào) 來(lái)讓高速計(jì)數(shù)器接收,想記錄一下自己的學(xué)習(xí)過(guò)程。一、高速計(jì)數(shù)器
關(guān)于高速計(jì)數(shù)器的介紹和原理可以去看西門(mén)子的開(kāi)發(fā)手冊(cè)和官方介紹,這里提供鏈接:高速計(jì)數(shù)器
在西門(mén)子的上位機(jī)中可以直接使用高速計(jì)數(shù)器向?qū)?lái)配置程序。
當(dāng)程序都配置完成后,在西門(mén)子上位機(jī)里就會(huì)自動(dòng)生成相應(yīng)的代碼。
可以在中斷程序(Count_EQ0)中寫(xiě)自己想要添加的控制程序。
二、運(yùn)動(dòng)控制
關(guān)于運(yùn)動(dòng)控制,西門(mén)子PLC上位機(jī)中也有運(yùn)動(dòng)控制向?qū)В梢灾苯邮怯眠\(yùn)動(dòng)控制向?qū)?lái)生成配置程序。
西門(mén)子官方運(yùn)動(dòng)控制
1.選擇要使用的軸
2.選擇測(cè)量系統(tǒng),有相對(duì)脈沖和工程單位(由于我只要發(fā)送一萬(wàn)個(gè)脈沖,所以選擇相對(duì)脈沖)
3. 配置輸出脈沖的信號(hào)類型和極性
4.后面的配置按照自己的需求去選擇,我這里只需要發(fā)送脈沖,所以直接跳到運(yùn)動(dòng)控制生成的子程序。
生成的代碼如下:
這里有生成很多子程序,主要用到的有AXIS0_CTRL和AXIS0_GOTO
這些子程序中CTRL要和其他子程序搭配起來(lái)用,CTRL必須要使用,重點(diǎn)來(lái)介紹一下AXIS0_CTRL和AXIS0_GOTO。
AXIS0_CTRL
啟用和初始化運(yùn)動(dòng)軸,方法是自動(dòng)命令運(yùn)動(dòng)軸每次 CPU 更改為 RUN 模式時(shí)加載組態(tài)/包絡(luò)表。
MOD_EN 參數(shù)必須開(kāi)啟,才能啟用其它運(yùn)動(dòng)控制子例程向運(yùn)動(dòng)軸發(fā)送命令。 如果 MOD_EN 參數(shù)關(guān)閉,運(yùn)動(dòng)軸會(huì)中止所有正在進(jìn)行的命令;
Done 參數(shù)會(huì)在運(yùn)動(dòng)軸完成任何一個(gè)子例程時(shí)開(kāi)啟;
Error 參數(shù)存儲(chǔ)該子程序運(yùn)行時(shí)的錯(cuò)誤代碼;
C_Pos 參數(shù)表示運(yùn)動(dòng)軸的當(dāng)前位置。 根據(jù)測(cè)量單位,該值是脈沖數(shù) (DINT) 或工程單位數(shù) (REAL);
C_Speed 參數(shù)提供運(yùn)動(dòng)軸的當(dāng)前速度。 如果您針對(duì)脈沖組態(tài)運(yùn)動(dòng)軸的測(cè)量系統(tǒng),C_Speed 是一個(gè) DINT 數(shù)值,其中包含脈沖數(shù)/每秒。如果您針對(duì)工程單位組態(tài)測(cè)量系統(tǒng),C_Speed 是一個(gè) REAL 數(shù)值,其中包含選擇的工程單位數(shù)/每秒 (REAL)。
C_Dir 參數(shù)表示電機(jī)的當(dāng)前方向:信號(hào)狀態(tài) 0 = 正向;信號(hào)狀態(tài) 1 = 反向;
AXIS0_GOTO
命令運(yùn)動(dòng)軸轉(zhuǎn)到所需位置
START 參數(shù)開(kāi)啟會(huì)向運(yùn)動(dòng)軸發(fā)出 GOTO 命令。 對(duì)于在 START 參數(shù)開(kāi)啟且運(yùn)動(dòng)軸當(dāng)前不繁忙時(shí)執(zhí)行的每次掃描,該子例程向運(yùn)動(dòng)軸發(fā)送一個(gè) GOTO 命令。為了確保僅發(fā)送了一個(gè) GOTO 命令,請(qǐng)使用邊沿檢測(cè)元素用脈沖方式開(kāi)啟 START 參數(shù);
Pos 參數(shù)包含一個(gè)數(shù)值,指示要移動(dòng)的位置(絕對(duì)移動(dòng))或要移動(dòng)的距離(相對(duì)移動(dòng))。 根據(jù)所選的測(cè)量單位,該值是脈沖數(shù) (DINT) 或工程單位數(shù) (REAL);
Speed 參數(shù)確定該移動(dòng)的最高速度。 根據(jù)所選的測(cè)量單位,該值是脈沖數(shù)/每秒 (DINT) 或工程單位數(shù)/每秒 (REAL);
Mode 參數(shù)選擇移動(dòng)的類型:
0:絕對(duì)位置
1:相對(duì)位置
2:?jiǎn)嗡龠B續(xù)正向旋轉(zhuǎn)
3:?jiǎn)嗡龠B續(xù)反向旋轉(zhuǎn)
Abort 參數(shù)啟動(dòng)會(huì)命令運(yùn)動(dòng)軸停止當(dāng)前包絡(luò)并減速,直至電機(jī)停止。