一、前言
? ? ? ?上一篇文章所提到的EPOS官方VC代碼里面設置的電機驅(qū)動方式是Profile Position模式,只使用一個模式的話顯然在有些場合達不到想要的控制效果,所以根據(jù)官方代碼修改出了Profile Velocity模式宙橱,即將原來根據(jù)位置信息驅(qū)動電機改為根據(jù)速度信息驅(qū)動電機。
? ? ? ?修改后的程序并沒有對上位機界面進行控件上的修改蘸拔,只改了一些靜態(tài)文本的顯示信息师郑,新界面如圖1所示。所以只說一下主要修改的地方调窍。
二宝冕、主要修改
1、OpenDevice()函數(shù)
修改后的核心代碼如圖2所示邓萨。
(1)改用VCS_GetVelocityProfile(m_KeyHandle, m_usNodeId, &m_ulProfileAcceleration, &m_ulProfileDeceleration, &m_ulErrorCode)函數(shù)地梨,用來獲得設定的加速和減速的加速度值。
(2)VCS_SetOperationMode()的形參改成了OMD_PROFILE_VELOCITY_MODE先誉,表示設定驅(qū)動模式為速度模式湿刽。
(3)改用VCS_SetVelocityProfile(m_KeyHandle, m_usNodeId, 1000, 1000, &m_ulErrorCode)函數(shù),設定加速和減速的加速度值均為1000褐耳。
(4)改用VCS_GetVelocityIs(m_KeyHandle, m_usNodeId, &m_lStartVelocity, &m_ulErrorCode)函數(shù)诈闺,獲得此時的速度值,即為顯示在界面上的初始速度值铃芦。
2雅镊、MOVE按鈕點擊事件
(1)改用VCS_GetVelocityIs(m_KeyHandle, m_usNodeId, &m_lStartVelocity, &m_ulErrorCode)函數(shù):獲取電機此時的速度值襟雷,作為初始速度,獲取失敗函數(shù)返回0
(2)改用VCS_MoveWithVelocity(m_KeyHandle, m_usNodeId, m_lTargetVelocity, &m_ulErrorCode)函數(shù):驅(qū)動電機達到設定轉(zhuǎn)速仁烹,驅(qū)動失敗返回0
3耸弄、HALT按鈕點擊事件
改用VCS_HaltVelocityMovement(m_KeyHandle, m_usNodeId, &m_ulErrorCode)函數(shù)
4、增加ChangeDrection按鈕卓缰,用來改變轉(zhuǎn)動方向
代碼很簡單计呈,如圖4所示。