EPOS2-24-2控制范例VC代碼解析(profile position模式)

一摔竿、簡介 ? ? ?

?EPOS給的這個VC代碼是用MFC編寫的上位機,由圖1可知EPOS控制器最多可以設(shè)置九種控制方式移宅,而這個上位機默認(rèn)只能使用“Profile Position Mode”畸肆,電機參數(shù)配置界面和驅(qū)動界面分別如圖2圖3所示。注意選擇EPOS2控制器,連接方式一般都是默認(rèn)串口發(fā)送齐疙。


圖1


圖2
圖3


二膜楷、控制思路

? ? ? 1、配置完控制器參數(shù)后進入圖3控制界面贞奋,在對話框初始化函數(shù)BOOL CDemo_WinDLLDlg::OnInitDialog()中調(diào)用OpenDevice()函數(shù)判斷控制器與電機是否成功打開赌厅,若打開則開啟定時器,以100ms的周期更新數(shù)據(jù)并改變界面顯示轿塔。其中OpenDevice()函數(shù)核心代碼如下圖所示特愿。

圖4

下面簡要介紹圖4中主要的幾個函數(shù),詳細介紹請見EPOS2-24-2文件夾下《EPOS Command Library》的PDF文件勾缭。

VCS_ClearFault(m_KeyHandle, m_usNodeId, &m_ulErrorCode):清除錯誤狀態(tài)揍障,使電機由錯誤狀態(tài)轉(zhuǎn)到關(guān)閉狀態(tài)。

VCS_GetOperationMode(m_KeyHandle, m_usNodeId, &m_bMode, &m_ulErrorCode):讀取電機驅(qū)動狀態(tài)俩由,變量m_bMode返回驅(qū)動方式編號毒嫡。

VCS_GetPositionProfile(m_KeyHandle, m_usNodeId, &m_ulProfileVelocity, &m_ulProfileAcceleration, &m_ulProfileDeceleration, &m_ulErrorCode):讀取位置驅(qū)動方式的各項參數(shù),m_ulProfileVelocity返回穩(wěn)定時轉(zhuǎn)速幻梯,m_ulProfileAcceleration和m_ulProfileDeceleration分別返回電機加速和減速時的加速度兜畸。

VCS_SetOperationMode(m_KeyHandle, m_usNodeId, OMD_PROFILE_POSITION_MODE, &m_ulErrorCode):將電機驅(qū)動方式通過OMD_PROFILE_POSITION_MODE配置成Profile Position Mode努释。

VCS_SetPositionProfile(m_KeyHandle, m_usNodeId, 10000, 1000, 1000, &m_ulErrorCode):配置電機在Profile Position Mode方式驅(qū)動下的各項參數(shù),10000表示電機穩(wěn)定時的轉(zhuǎn)速咬摇,兩個1000形參表示電機加速和減速時的加速度伐蒂。

VCS_GetPositionIs(m_KeyHandle, m_usNodeId, &m_lStartPosition, &m_ulErrorCode):獲取電機此時的各項位置參數(shù),m_lStartPosition返回函數(shù)被調(diào)用時電機實際位置肛鹏,即為初始位置逸邦。

2、在圖3界面配置控制器節(jié)點ID和目標(biāo)位置信息龄坪,通過m_lTargetPosition變量獲取設(shè)定的目標(biāo)位置信息昭雌,并且選擇是相對轉(zhuǎn)動方式還是絕對轉(zhuǎn)動方式,若為前者則電機會轉(zhuǎn)動目標(biāo)位置距離健田,否則則是電機轉(zhuǎn)動到設(shè)定的絕對位置處為止烛卧。

3、點擊ENABLE按鈕妓局,使能電機总放,注意此時并沒有開始驅(qū)動電機。主要采用的核心代碼如圖5所示

圖5

簡要介紹相關(guān)函數(shù):

UpdateNodeIdString():將節(jié)點ID編輯框中的數(shù)值轉(zhuǎn)換成字符串類型好爬,即更新參數(shù)m_usNodeId局雄。

VCS_GetFaultState(m_KeyHandle, m_usNodeId, &oFault, &m_ulErrorCode):判斷電機是否處于錯誤狀態(tài),是則oFault=true存炮,判斷失敗則函數(shù)返回0炬搭。

VCS_ClearFault(m_KeyHandle, m_usNodeId, &m_ulErrorCode):清除存在的錯誤,使電機從錯誤狀態(tài)變成失能狀態(tài)穆桂。

4宫盔、點擊MOVE按鈕,實現(xiàn)電機轉(zhuǎn)動享完,驅(qū)動代碼如圖6所示灼芭。

圖6

簡要介紹相關(guān)代碼:

m_lFirstTargetPosition用來存儲初次設(shè)置的目標(biāo)位置(比如9722000表示90圈)。

VCS_GetPositionIs(m_KeyHandle, m_usNodeId, &m_lStartPosition, &m_ulErrorCode):獲取此時位置信息般又,通過m_lStartPosition返回顯示在初始位置編輯框彼绷。

VCS_MoveToPosition(m_KeyHandle, m_usNodeId, m_lTargetPosition, m_oRadio, m_oImmediately, &m_ulErrorCode):驅(qū)動電機轉(zhuǎn)動到響應(yīng)位置,m_oRadio表示相對轉(zhuǎn)動還是絕對轉(zhuǎn)動茴迁,m_oImmediately為true表示立即驅(qū)動寄悯,若為false則表示等上次驅(qū)動到指定位置,才開始本次驅(qū)動堕义。

UpdateStatus():更新對話框顯示热某。

5、點擊HALT按鈕,使電機處于暫停狀態(tài)昔馋,按照設(shè)定的減速時加速度值減速到0,筹吐。停止后點擊MOVE按鈕電機會重新轉(zhuǎn)動到目標(biāo)位置為止

只調(diào)用一個函數(shù)VCS_HaltPositionMovement(m_KeyHandle, m_usNodeId, &m_ulErrorCode)秘遏。

6丘薛、點擊DISABLE按鈕,使電機處于停止?fàn)顟B(tài)邦危,電機立刻停止而不是勻減速停止洋侨,并且停止后再點擊MOVE按鈕并不會繼續(xù)轉(zhuǎn)動。

核心函數(shù)只有一個:VCS_SetDisableState(m_KeyHandle, m_usNodeId, &m_ulErrorCode)倦蚪。

7希坚、定時器中電機正反向驅(qū)動切換的實現(xiàn),實現(xiàn)代碼如圖7所示陵且。(本部分代碼不屬于官方范例裁僧,自己修改)

圖7

代碼解析:

調(diào)用VCS_GetPositionIs()函數(shù)使m_lActualValue始終獲得實時電機位置信息。

通過先前m_lFirstTargetPosition變量存儲了初次設(shè)定的非0目標(biāo)位置值慕购,通過判斷語句使目標(biāo)位置m_lTargetPosition在非0值和0之間切換聊疲,實現(xiàn)自動正反向切換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沪悲,一起剝皮案震驚了整個濱河市获洲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殿如,老刑警劉巖贡珊,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涉馁,居然都是意外死亡门岔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門谨胞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來固歪,“玉大人蒜鸡,你說我怎么就攤上這事胯努。” “怎么了逢防?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵叶沛,是天一觀的道長。 經(jīng)常有香客問我忘朝,道長灰署,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮溉箕,結(jié)果婚禮上晦墙,老公的妹妹穿的比我還像新娘。我一直安慰自己肴茄,他們只是感情好晌畅,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寡痰,像睡著了一般抗楔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拦坠,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天连躏,我揣著相機與錄音,去河邊找鬼贞滨。 笑死入热,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疲迂。 我是一名探鬼主播才顿,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尤蒿!你這毒婦竟也來了郑气?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤腰池,失蹤者是張志新(化名)和其女友劉穎尾组,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體示弓,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡讳侨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奏属。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跨跨。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖囱皿,靈堂內(nèi)的尸體忽然破棺而出勇婴,到底是詐尸還是另有隱情,我是刑警寧澤嘱腥,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布耕渴,位于F島的核電站,受9級特大地震影響齿兔,放射性物質(zhì)發(fā)生泄漏橱脸。R本人自食惡果不足惜础米,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望添诉。 院中可真熱鬧屁桑,春花似錦、人聲如沸栏赴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艾帐。三九已至乌叶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柒爸,已是汗流浹背准浴。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捎稚,地道東北人乐横。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像今野,于是被迫代替她去往敵國和親葡公。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容