siemens x
控制軟件

SIMOITON中Motion Task狀態(tài)查詢與調(diào)用

2025China.cn   2013年10月14日

  1概述

  在西門子的SIMOTION中,有一系列的命令可以用來控制Motion Tasks的啟動、停止、繼續(xù)運(yùn)行,也可以查詢某一個任務(wù)的運(yùn)行狀態(tài)。

  Motion Task的任務(wù)狀態(tài)模型如圖1所示,展示了執(zhí)行系統(tǒng)中的任務(wù)(例如MotionTask)所處的各個運(yùn)行狀態(tài)之間的轉(zhuǎn)換關(guān)系,以及該關(guān)系可以通過哪條指令進(jìn)行跳轉(zhuǎn)。

  圖1.任務(wù)狀態(tài)模型

  TS_INVALID:任務(wù)不存在于執(zhí)行系統(tǒng)中,在執(zhí)行系統(tǒng)的參數(shù)設(shè)置中未使用。

  TS_STOP_PENDIING:任務(wù)已經(jīng)收到一個停止信號,但仍然處于RUNNING 和STOPPED狀態(tài)之間。任務(wù)仍然可以執(zhí)行動作直到被停止。

  TS_STOPPED:任務(wù)因調(diào)用功能 _resetTask()或SIMOTION SCOUT執(zhí)行了停止而停止。

  TS_RUNNING:任務(wù)因下列功能而運(yùn)行:

  ? 調(diào)用功能 _startTask() (MotionTasks)

  ? 相關(guān)事件已發(fā)生 (UserInterruptTask 等)

  TS_WAITING:任務(wù)因下列功能之一而處于等待狀態(tài):

  ? _waitTime()

  ? WAITFORCONDITION...

  TS_SUSPENDED:任務(wù)通過功能 _suspendTask()被暫停

  TS_WAIT_NEXT_CYCLE:TimerInterruptTask 正在等待其觸發(fā)信號

  TS_WAIT_NEXT_INTERRUPT:SystemInterruptTask 正在等待觸發(fā)報警或者UserInterruptTask 正在等待觸發(fā)事件

  TS_LOCKED:任務(wù)通過功能 _disableScheduler()被鎖定。

  2 Motion Task控制命令說明

  可以使用MCC或ST編程語言編輯Motion Tasks的調(diào)用及處理程序。MCC編程語言中的任務(wù)處理命令如圖2所示:

  圖2. MCC中的任務(wù)處理命令

  而ST編程語言中的任務(wù)處理命令有_startTaskId,_resetTaskId,_restartTaskId,_suspendTaskId,_resumeTaskId,_getStateOfTaskId。

  MCC命令說明:

  (1) Start task(對應(yīng)于ST語言的_restartTaskId)

  該命令用于將一個處于TASK_STATE_STOPPED狀態(tài)的Motion Task運(yùn)行,對于處在TASK_STATE_WAITING,TASK_STATE_SUSPENED狀態(tài)的Motion Task,該指令無效果。

  _restartTaskId命令從頭啟動一個MotionTask,也就是從最開始執(zhí)行一個已停止的任務(wù)。如果任務(wù)已經(jīng)激活,則停止該任務(wù)并從開始處重新處理,也就是說該命令只能在 BackgroundTask中調(diào)用一次,否則被選擇的任務(wù)在每次BackgroundTask循環(huán)中都會重新啟動。該命令允許用于MotionTask。

  (2)Interrupt task(對應(yīng)于ST語言的_suspendTaskId)

  該命令將一個任務(wù)中斷在當(dāng)前位置,任務(wù)狀態(tài)變?yōu)門ASK_STATE_SUSPENDED。該命令不停止先前已經(jīng)從該任務(wù)啟動的那些軸運(yùn)動。停止所有當(dāng)前激活的 UserInterruptTask,只有當(dāng)啟動條件再次滿足時才啟動它。該命令允許用于MotionTask、BackgroundTask、UserInterruptTask、SystemInterruptTask 和TimerInterruptTask。對于循環(huán)任務(wù) (BackgroundTask、TimerInterruptTask)同時停止任務(wù)的時間監(jiān)視。使用 _resumeTask Id()可繼續(xù)任務(wù)執(zhí)行及其時間監(jiān)視。

  (3)Continue task(對應(yīng)于ST語言的_resumeTaskId)

  該命令將從先前的斷點位置繼續(xù)處理中斷的任務(wù)。中斷的運(yùn)動不會自動繼續(xù),必須通過編程繼續(xù)才能執(zhí)行中斷的運(yùn)動。該命令只能在 BackgroundTask 中調(diào)用一次,否則被選擇的任務(wù)在每次BackgroundTask循環(huán)中都會從中斷位置繼續(xù)執(zhí)行。該命令允許用于MotionTask、BackgroundTask、UserInterruptTask、 SystemInterruptTask 和TimerInterruptTask。

  (4)Reset task(對應(yīng)于ST語言的_resetTaskId)

  該命令可以將一個MotionTask復(fù)位為TASK_STATE_STOPPED狀態(tài),若此時想要將MotionTask恢復(fù)運(yùn)行狀態(tài),需要使用RestartTaskId命令。

  (5)Task state(對應(yīng)于ST語言的_getStateOfTaskId)

  該命令可以用來查詢相關(guān)任務(wù)的運(yùn)行狀態(tài)。

  (6)Determine taskId(對應(yīng)于ST語言的_getTaskId )

  該命令根據(jù)任務(wù)名稱生成一個項目范圍內(nèi)唯一的TaskId ,該任務(wù)標(biāo)識必須分配給一個數(shù)據(jù)類型為StructTaskId 的變量。

  3 Motion Task控制命令調(diào)用

  LAD編程方式如圖3所示:

  圖編程

  在任務(wù)控制命令中,通過id指定唯一被調(diào)用的任務(wù),可通過以下方法可以獲得Mo tionTask的TaskId:

  (1) _task.

  為被調(diào)用任務(wù)的的任務(wù)名稱,例如Task_1。

  (2) 通過_getStateOfTaskId指令,可以獲得相關(guān)任務(wù)的的運(yùn)行狀態(tài),該指令的的返回值為DWORD型數(shù)據(jù),其含義如圖4所示:

  圖4 任務(wù)執(zhí)行狀態(tài)查詢

  指令的運(yùn)行狀態(tài)可以是兩個或多個代碼值的相加之和,例如16#0014表示的狀態(tài)就是,該任務(wù)正在運(yùn)行,但是由于_waitTime或者waitforcondition指令處在等待的狀態(tài)。

  當(dāng)然也可以使用ST或MCC編程方式來實現(xiàn)Motion Task的控制,在此不再贅述。

  4示例

  下面以SIMOTION D445-2為例,舉一個簡單的例子通過程序?qū)otionTask的狀態(tài)模型進(jìn)行控制。

  首先,在MCCUnit_1中插入源程序MCC_1(),在其中編寫循環(huán)計數(shù)程序,計數(shù)變量為counter,將MCC_1()插入到執(zhí)行系統(tǒng)的MotionTask_1中。

  圖5 MCC_1()編程示例

  然后,在LFunit_1中,插入源程序LADFBD_1(),在其中編寫MotionTask_1的控制程序,將LADFBD_1()放入執(zhí)行系統(tǒng)的BackgroundTask中循環(huán)執(zhí)行。

  圖6 Motion Task控制程序示例

  運(yùn)行SIMOTION,使用Trace功能可以捕捉到Counter和Taskstate兩個變量的狀態(tài),如圖7所示:

  圖7. 變量Trace圖

  圖中,黃色線為Taskstate的數(shù)值,其數(shù)值變化為16#0002->16#0004->16#0024->16#4,表示MotionTask_1的運(yùn)行狀態(tài)依次TASK_STATE_STOPPED->TASK_STATE_RUNNING-> TASK_ST ATE_RUNNING+TASK_STATE_SUSPENDED->TASK_STATE_RUNNING。橘紅色為MotionTask_1中計數(shù)程序的計數(shù)值。

(轉(zhuǎn)載)

標(biāo)簽:西門子 SIMOTION 執(zhí)行系統(tǒng) MCC命令 MotionTask 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會
專題報道