MS框架介绍及使用说明郭斌演示题目显示各轴位置信息示教点位、定位JOG单步执行“启动”中的步骤MS框架目的“模板框架”可以让用户快速搭建稳定可靠的程序,避免了开发者随意开发导致的程序结构不佳,运行效率不高以及不易调试、维护等问题。同时,很好的使用该框架,可以用同一个框架应对各种非标设备,大幅缩短开发周期。快速搭建稳定可靠的程序高效易调试易维护同一框架应对多种非标设备框架Task组成框架由2個Task構成,兩個Task的主體結構都是While迴圈。1.Cmd02.bas:負責掃描外部資訊(HMI下發的命令和I/O)—產生機器動作命令。2.Control02.bas:負責機器動作執行—執行命令。Task——Cmd02.basCmd02.bas這個Task流程很簡單,說明如下:掃描有沒有伺服報警、限位元報警等錯誤發生掃描HMI下發的命令和ScanMIO()產生的命令VR(C_Cmd)是否合規a)沒有命令,則不產生動作命令b)命令不合規,則不產生動作命令c)命令合規,則產生動作命令到VR(C_RunMD)和VR(C_SubMD)更新以上兩個掃描結果資訊到VR(CS_WarnId)和VR(CS_ErrId)Task——Cmd02.basControl02.bas這個Task的流程說明如下:更新當前機器的系統狀態根據Cmd02.bas產生的機器執行命令,執行相應的動作設置機器下一個運行模式,以便更新機器下一個系統狀態运行模式与机器状态机狀態機由SelectCase實現運行模式管理。框架內部已定義好狀態機,根據機器得到的命令VR(C_RunMD),系統會自動切換狀態機。机器状态机機器狀態機切換如下圖三種等候狀態:①DbgRdy、③HomeRdy、⑤OrgRdy。等候狀態下,機器無動作,處於等待接收命令狀態框架中的自動流程動作支援自動/單步/暫停運行依據不同命令,自動切換狀態機模式發生停止命令或一般錯誤的重置錯誤命令後,如果機器曾回過機械原點,會自動進入HomeRdy狀態分兩種錯誤處理:一般錯誤Err_S和重大錯誤Err_B。發生重大錯誤,重置錯誤後,系統會進入DbgRdy,需重回機械原點,才能進行後續的回工作原點和自動流程動作。全局接口变量系統保留了VR(0)~VR(15)的使用,這16個變數的VR編號內部都做了巨集定義。使用者可以針對這些介面,查詢VR表來調試機器,說明如下:重点接口重点接口如何使用MS框架框架已具備的功能14種設備系統狀態自動轉換發生重大錯誤與一般錯誤時暫停動作特定狀態,拒絕不合法的操作(Ex:機器還沒有回零,不能操作RUN)9種基本動作處理:a)回原點,到工作點,b)自動運行,暫停,單步運行,停止c)重大錯誤,一般錯誤,重置錯誤两大步完成设备开发步骤一添加基本动作两大步完成设备开发步骤二添加自定义动作(如:HomeRdy下的动作)MS框架专案演练1—定义硬件根据实际机台,在ProjectDefine.Bi宏定义轴号MS框架专案演练2—初始化SUBInit中添加要初始化的内容:设置JOG、回原点、PTP等相关参数SUBInitBASE2,3SVON'JOG参数初始化JOG_VL=5000JOG_VH=JOG_VL*4JOG_ACC=JOG_VL*10JOG_DEC=JOG_ACCJOG_VLTIME=2000'HOME参数初始化HOME_VL=5000HOME_VH=HOME_VL*2HOME_ACC=HOME_VL*10HOME_DEC=HOME_ACCHOME_MODE=1'单轴运动参数初始化VL=1000VH=10000ACC=VH*10DEC=ACCJK=0'插补运动参数初始化GVL=1000GVH=10000GACC=VH*10GDEC=GACCGJK=0ENDSUBMS框架专案演练3—回机械原点动作SUBModeHome中添加回原点的动作流程SUBModeHome'请在此模式下,编写您的回原点动作...BASE2,3HOMENWAITDONEENDSUBMS框架专案演练4—回工作原点动作SUBModeOrg中添加回工作原点的动作流程SUBModeOrgVR(CS_RunStepCount)=0'请在此模式下,编写您的到工作原点动作...BASE2,3MOVEABS5000,5000'ORGWAITDONEENDSUBMS框架专案演练5—自动运行(启动)SUBModeRunBASE2,3DIMiASINTEGER=0FORi=0to4MOVEABSVR(KEYIndexBASE+i*3),VR(KEYIndexBASE+i*3+1)WAITDONEFC.ChecknPause()IFVR(11)=-1THENEXITFORENDIFNextiENDSUBSUBModeRun中添加自动运行的步骤,每个步骤间添加暂定节点FC.ChecknPause()MS框架专案演练6—添加自定义动作在Docmd()中添加什么命令值对应什么子动作。如本例中201~205都是示教,211~215都是定位在ModeHome_SubActions中写对应的子动作做什么事情a.ModeTeach()中写示教的动作b.ModePTP()中写定位的动作