自定義脈沖輸出功能塊FB_MotionCtrl_PTO使用說明
目錄
自定義脈沖輸出功能塊FB_MotionCtrl_PTO使用說明目錄前言:下載地址:功能塊庫.compiled-library提供:用戶單位換算:換算關系公式:該庫提供視圖控制功能如下:設備樹中Pulse_Generators的脈沖PTO配置:功能塊調用:(PTO_0為設備樹中脈沖輸出的實例名稱)輸入管腳說明輸出管腳說明程序中帶地址變量與功能塊的結構體變量關聯示例:全局的帶地址變量聲明代碼邏輯實現故障信息:
前言:
該自定義功能塊降低了M241脈沖輸出功能的使用難度,特別是對施耐德PTO控制功能塊不熟悉的工程師有較大的幫助。只需要對PTO硬件進行簡單配置后就可以使用功能塊來控制輸出,功能塊提供了用戶工程量單位到脈沖輸出的自動轉換,省去了用戶單位轉換的煩惱。
該功能優化了功能塊的調用邏輯,不掃描未執行的功能塊,從而降低了程序的執行時間,一些對程序執行周期要求嚴格的應用有一定的優化效果。
下載地址:
下載連接為歸檔工程文件,在打開歸檔文件時選擇導入所有庫文件即可將該庫加入本地電腦中。
鏈接:https://pan.baidu.com/s/1SwzXTmtNiyX_ANm89EBn-w
提取碼:rji9
功能塊庫.compiled-library提供:
-
位置設置SetPos
-
回原點控制Home
-
點動控制Jog
-
速度模式控制MoveVel
-
相對定位控制MoveRel
-
絕對定位控制MoveAbs
用戶單位換算:
換算關系公式:
示例:若機械減速比為3:1,設定500個脈沖i_rUintPlus
對應絲桿導程(用戶工程單位i_rUeserUint
)5mm
則:
該庫提供視圖控制功能如下:
設備樹中Pulse_Generators的脈沖PTO配置:
配置PTO輸出模式,A輸出位置,B輸出位置,軟件限位等可以根據實際需求選擇,但加速度/減速度單位必須為赫茲/毫秒,如果需要執行MC_Home功能的話,必須配置Ref輸入,Ref輸入位置可以根據實際需求選擇。
功能塊調用:(PTO_0為設備樹中脈沖輸出的實例名稱)
-
St語言下:
PROGRAM SR_Main
VAR
fbMotionCtrl_PTO_0 : fbMotionCtrl_PTO.FB_MotionCtrl_PTO;
stAxisCtrl_PTO_0 : fbMotionCtrl_PTO.ST_PTOCtrl_InOut;
END_VAR
fbMotionCtrl_PTO_0(iq_ptAxisRef:= ADR(PTO_0), iq_stAxisCtrlStr:= stAxisCtrl_PTO_0);
-
LD語言下:
輸入管腳說明
管腳變量名稱 | 變量類型 | 默認值 | 功能描述 |
---|---|---|---|
i_xVisual_Enable | BOOL | 激活視圖控制功能 | |
i_sAxisName | STRING(16) | 'PTO_0' | 視圖中的軸名稱 |
i_xLimP | BOOL | TRUE | 正向限位 |
i_xLimN | BOOL | TRUE | 反向限位 |
i_xCMDEnable | BOOL | PTO使能 | |
i_xCMDHome | BOOL | 回原點命令,如果回原點模式為0時,執行的為SetPos | |
i_xCMDAbs | BOOL | 絕對定位命令 | |
i_xCMDVel | BOOL | 連續速度命令 | |
i_xCMDJogFwd | BOOL | 正向點動命令 | |
i_xCMDJogRev | BOOL | 反向點動命令 | |
i_xCMDStop | BOOL | 停止命令 | |
i_xCMDReset | BOOL | 復位命令 | |
i_xCMDSetPos | BOOL | 設置位置命令 | |
i_rGearIn | REAL | 1.0 | 減速機-輸入 |
i_rGearOut | REAL | 1.0 | 減速機-輸出 |
i_rUintPlus | REAL | 10000.0 | 脈沖數 |
i_rUeserUint | REAL | 360.0 | 脈沖數對應的用戶單位 |
i_rSetPos | REAL | 0.0 | 設置位置-位置值 |
i_rHomePos | REAL | 0.0 | 原點位置-偏移值 |
i_enHomeMode | PTO_HOMING_MODE | ShortReference_Reversal | 回原點-模式 |
i_enHomeDir | MC_Direction | mcPositiveDirection | 回原點-方向 |
i_rHomeHighVel | REAL | 360.0 | 回原點-高速 |
i_rHomeLowVel | REAL | 36.0 | 回原點-低速 |
i_rVel | REAL | 360.0 | 速度模式-速度 |
i_rJogVel | REAL | 180.0 | 點動模式-速度 |
i_enVelMode | MC_BUFFER_MODE | mcAborting | 速度模式-緩沖模式 |
i_rAcc | REAL | 3600.0 | PTO加速度 |
i_rDec | REAL | 3600.0 | PTO減速度 |
i_rAbsPos | REAL | 絕對定位-位置 | |
i_rAbsVel | REAL | 360.0 | 絕對定位-速度 |
i_enAbsMode | MC_BUFFER_MODE | mcAborting | 絕對定位-緩沖模式 |
i_rRelDis | REAL | 相對定位-距離 | |
i_rRelVel | REAL | 360.0 | 相對定位-速度 |
i_enRelMode | MC_BUFFER_MODE | mcAborting | 相對定位-緩沖模式 |
i_rStopDec | REAL | 36000.0 | PTO停止減速度 |
i_iStopJerk | INT | 50 | PTO停止的Jerk |
i_iACCJerk1 | INT | 50 | 加速段-Jerk1 |
i_iACCJerk2 | INT | 50 | 加速段-Jerk2 |
i_iDECJerk1 | INT | 50 | 減速段-Jerk1 |
i_iDECJerk2 | INT | 50 | 減速段-Jerk2 |
輸出管腳說明
管腳變量名稱 | 變量類型 | 功能描述 |
---|---|---|
q_wBErrorSignal | WORD | |
q_wSErrorSignal | WORD | |
q_xEnableSta | BOOL | MC_Power_PTO的狀態 |
q_xJogBusy | BOOL | 點動控制中 |
q_xHomeDone | BOOL | 回原點完成 |
q_xHomeBusy | BOOL | 回原點中 |
q_xAbsDone | BOOL | 絕對定位完成 |
q_xAbsBusy | BOOL | 絕對定位中 |
q_xRelDone | BOOL | 相對位移完成 |
q_xRelBusy | BOOL | 相對位移中 |
q_xInVel | BOOL | 速度模式達到設定速度 |
q_xVelBusy | BOOL | 速度模式運行中 |
q_xStopDone | BOOL | PTO停止完成 |
q_enErrorID | PTO_ERROR | PTO故障ID |
q_xDisable | BOOL | PTO未使能 |
q_xStandStill | BOOL | PTO靜止 |
q_xContinuousMotion | BOOL | 連續速度運行中 |
q_xError | BOOL | 故障 |
q_xIsHomed | BOOL | 為True時參考點有效,允許絕對運動 |
q_rActPos | REAL | 當前實際位置(經齒輪比后的用戶單位位置) |
q_rActVel | REAL | 當前實際速度(經齒輪比后的用戶單位速度) |
程序中帶地址變量與功能塊的結構體變量關聯示例:
全局的帶地址變量聲明
VAR_GLOBAL
G_xCMDEnable_PTO0 AT %MX100.0 : BOOL;
G_xCMDHome_PTO0 AT %MX100.1 : BOOL;
G_xCMDAbs_PTO0 AT %MX100.2 : BOOL;
G_xCMDRel_PTO0 AT %MX100.3 : BOOL;
G_xCMDVel_PTO0 AT %MX100.4 : BOOL;
G_xCMDJogFwd_PTO0 AT %MX100.5 : BOOL;
G_xCMDJogRev_PTO0 AT %MX100.6 : BOOL;
G_xCMDStop_PTO0 AT %MX100.7 : BOOL;
G_xCMDReset_PTO0 AT %MX100.8 : BOOL;
G_xCMDSetPos_PTO0 AT %MX100.9 : BOOL;
END_VAR
代碼邏輯實現
IF NOT(stAxisCtrl_PTO_0.i_xVisual_Enable) THEN //視圖控制未激活時
stAxisCtrl_PTO_0.i_xCMDEnable := GVL.G_xCMDEnable_PTO0;
stAxisCtrl_PTO_0.i_xCMDHome := GVL.G_xCMDHome_PTO0;
stAxisCtrl_PTO_0.i_xCMDAbs := GVL.G_xCMDAbs_PTO0;
ELSE //視圖控制激活時
GVL.G_xCMDEnable_PTO0 := stAxisCtrl_PTO_0.i_xCMDEnable;
GVL.G_xCMDHome_PTO0 := stAxisCtrl_PTO_0.i_xCMDHome;
GVL.G_xCMDAbs_PTO0 := stAxisCtrl_PTO_0.i_xCMDAbs;
END_IF
故障信息:
參照ESME軟件或Somoachine軟件中關於M241的功能塊MC_ReadStatus_PTO