<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        EtherCAT運動控制器PT/PVT實現用戶自定義軌跡規劃
        深圳市正運動技術有限公司
        收藏本文     查看收藏

        公眾號抬頭2.gif

        ZMC408CE硬件介紹

        ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

        ZMC408CE運動控制器.png

        ZMC408CE支持8軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

        ZMC408CE支持PLC、Basic、HMI組態三種編程方式。PC 上位機 API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

        ZMC408CE組合圖.png

        ZMC408CE支持8軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。

        ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。

        ZMC408CE視頻介紹

        更多關于ZMC408CE的詳情介紹,點擊“推薦|8通道PSO的高性能EtherCAT總線運動控制器”查看。

        PCIE464M硬件介紹

        PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運動控制卡,具有多項實時和高精度運動控制控制功能。

        PCIE464M運動控制卡.png

        用戶可直接將PCIE464M嵌入標準PC機實現高性能的EtherCAT運動控制功能,實現高精多軸同步控制,EtherCAT控制周期最小可達100us!

        PCIE464M內置多路高速IO輸入輸出,可滿足用戶的多樣化高速IO應用需求,如:高速色標鎖存、高速PWM、多維位置比較輸出PSO、視覺飛拍、速度前瞻、編碼器位置檢測等應用。

        PCIE464M架構圖.png

        PCIE464M運動控制卡上自帶16進16出,第三方圖像處理工控機或PC無需額外配置IO數據采集卡和PLC,即可實現IPC形態的機器視覺運動控制一體機,簡化硬件架構,節省成本,軟硬件一體化。

        PCIE464M視頻介紹

        更多關于PCIE464M的詳情介紹,點擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實時運動控制卡”查看。

        PT指令與PVT指令

        1. PT運動介紹

        PT(Position-Time)運動:是一種單位時間內的運動位置控制技術,主要用于控制步進電機和伺服電機等運動設備在設定時間內實現精確的軸位置控制。位置跟時間參數一般是PC每個周期計算好對應的坐標,然后傳給控制器。

        PT算法:在用戶定義的“位置和時間”點之間,PT算法計算出一個合適的速度曲線。PT算法保證控制卡的軌跡計算符合每一個已知的點和時間。分段速度簡單的由位置和時間的差分計算出來。

        PT運動適用場景:適用于近距離的點位運動或低速度的運動。它是非常簡單的算法,需要很少的計算量,因此計算速度很快。在低性能的運動系統中很受歡迎。但如果點之間間隔太大,那么運動將會很粗糙,因為每一段的加速度將會顯得不連續。

        PT運動為保證設定的單位時間內達到規劃的目標位置,控制器自動生成相應的加速度、速度曲線規劃。如果在極短時間內運動大距離,脈沖頻率會過高,導致電機堵轉。建議分解成小段,重復發送,連續的多個周期PT運動時, 速度會自動均勻。

        2.PVT運動介紹

        PVT(Position-Velocity-Time)運動:是一種基于位置、速度和時間的綜合控制方法,通過協調這三個方面的參數,實現對運動系統的精準控制。PVT在一段時間內驅動電機運動設置的距離,可以指定結束速度,小段內速度會自動根據前面的速度與結束速度來自動規劃,盡可能連續。位置、速度跟時間參數一般是PC每個周期計算好對應的坐標,然后傳給控制器。

        PVT算法:在用戶定義的“位置/速度/時間”點之間,PVT算法計算出合適的Jerk參數(加加速度,非恒定加速度)。這個算法保證軌跡計算合符每個已知點的位置、速度和時間。

        PVT模式算法適用場景:PVT算法對于平滑軌跡和軌跡跟蹤非常有效。位置軌跡點可以間隔很近,也可以間隔很大。比如說對于復雜的路徑,點位需要間隔很近;對于簡單的路徑,點位可以間隔很大。PVT可以手動指定點位置,但是要確定好每個點的合適速度值。

        3.正運動的PT指令與PVT指令

        相關的指令說明可以打開RTSys軟件,點擊軟件右上角的【幫助文檔】,選擇RTBasic編程手冊,在第七章的7.3節特殊運動指令章節進行查看。

        1.png

        ZBasic快速驗證自定義軌跡規劃指令MOVE_PTABS

        1.MOVE_PTABS指令的介紹。

        2.png

        注意距離參數dis的單位不是脈沖數,dis*units才表示具體的脈沖數。

        時間參數ticks的單位是伺服周期,控制器的伺服周期可以通過RTSys軟件的在線命令輸入?*max進行打印。

        如下圖SERVO_PERIOD:1000 min:500 max:4000表示當前控制器的伺服周期是1000us,伺服周期的可調范圍是500us到4000us。

        控制器伺服周期可以通過在線命令發送SERVO_PERIOD=500把伺服周期設置成500us,控制器斷電重啟后生效。

        3.png

        2.如何通過move_ptabs指令來封裝接口來實現單軸Sin曲線的位置規劃。

        (1)接口詳情

        '主函數邏輯
        '軸參數初始化
        BASE(0,1,2)
        DPOS=0,0,0
        MPOS=0,0,0
        UNITS=100,100,100
        MAX_SPEED=10000000,10000000,10000000
        '停止線程和軸運動
        STOPTASK 1
        RAPIDSTOP(2)
        WAIT IDLE
        '清除控制器報警
        DATUM(0)
        '開始軌跡規劃
        '單軸Sin曲線,振幅10,周期100個SERVO_PERIOD,初相角 0°
        Runtask 1,MySingleAxisSin(0,10,Pi/50,0)
        END
        '/**********************************************************************
        '函數功能:單軸sin函數的軌跡
        '函數模型:y=Amp*sin(Rad*x+Ipa)
        ' 輸  入 :Amp(振幅)、Rad(角速度ω,弧度制)、Ipa(初相角φ,弧度制)
        ' 輸  入 :AxisNum(運動的軸)
        ' 輸  出 :
        ' 備  注 :周期=2*Pi/Rad*10(控制周期)
        '**********************************************************************/
        GLOBAL SUB MySingleAxisSin(AxisNum,Amp,Rad,Ipa)
            LOCAL lvTime
            lvTime=0
            '選擇要運動的軸 
            BASE(AxisNum)
            WHILE 1 
                '通過PT運動下發運動指令
                MOVE_PTABS(10,Amp*SIN(Rad*lvTime+Ipa))
                lvTime=lvTime+1
                DELAY(1)
            WEND
        ENDSUB

        (2)測試結果

        4.png

        3.如何通過move_ptabs指令來封裝接口實現多軸的Sin曲線的位置規劃。

        (1)接口詳情

        '主函數邏輯
        '軸參數初始化
        BASE(0,1,2)
        DPOS=0,0,0
        MPOS=0,0,0
        UNITS=100,100,100
        MAX_SPEED=10000000,10000000,10000000
        '停止線程和軸運動
        STOPTASK 1
        RAPIDSTOP(2)
        WAIT IDLE
        '清除控制器報警
        DATUM(0)
        '開始軌跡規劃
        '多軸的Sin曲線規劃
        Runtask 1,MyMultAxisSin(10,Pi/50,0,10,Pi/100,0,10,Pi/200,0)
        END
        '/**********************************************************************
        '函數功能:0、1、2軸的3軸sin函數的軌跡  
        '函數模型:y1=A1mp*sin(Rad1*x+Ipa1)
        '     :y2=A2mp*sin(Rad2*x+Ipa2)
        '     :y3=A3mp*sin(Rad3*x+Ipa3)
        ' 輸  入 :Amp(振幅)、Rad(角速度ω,弧度制)、Ipa(初相角φ,弧度制)
        ' 輸  出 :
        ' 備  注 :周期=2*Pi/Rad*10(控制周期)
        '**********************************************************************/
        GLOBAL SUB MyMultAxisSin(Amp1,Rad1,Ipa1,Amp2,Rad2,Ipa2,Amp3,Rad3,Ipa3)
            LOCAL lvTime
            lvTime=0
            '選擇要運動的軸
            BASE(0,1,2)
            WHILE 1 
                MOVE_PTABS(10,Amp1*SIN(Rad1*lvTime+Ipa1),Amp2*SIN(Rad2*lvTime+Ipa2),Amp3*SIN(Rad3*lvTime+Ipa3))\
                lvTime=lvTime+1
                DELAY(1)
            WEND
        ENDSUB

        (2)測試結果

        5.png

        4.如何在move_ptabs指令后插入move_op指令來實現運動中對輸出口的操作。

        (1)假設需要在每執行Spasce個周期就需要操作一下輸出口0,接口詳情如下。

        '主函數邏輯
        '軸參數初始化
        BASE(0,1,2)
        DPOS=0,0,0
        MPOS=0,0,0
        UNITS=100,100,100
        MAX_SPEED=10000000,10000000,10000000
        '停止線程和軸運動
        STOPTASK 1
        RAPIDSTOP(2)
        WAIT IDLE
        '清除控制器報警
        DATUM(0)
        '開始軌跡規劃
        '單在Sin曲線軌跡規劃插入對輸出口的操作指令
        MySingleAxisSinOP(0,10,Pi/50,0,0.25)
        END
        '/**********************************************************************
        '函數功能:單軸sin函數的軌跡+MOVE_OP 
        '函數模型:y=Amp*sin(Rad*x+Ipa)
        ' 輸  入 :Amp(振幅)、Rad(角速度ω,弧度制)、Ipa(初相角φ,弧度制)
        ' 輸  入 :AxisNum(運動的軸),Space(間隔多少個周期操作一下輸出口)
        ' 輸  出 :
        ' 備  注 :周期=2*Pi/Rad*10(控制周期)
        '**********************************************************************/
        GLOBAL SUB MySingleAxisSinOP(AxisNum,Amp,Rad,Ipa,Space)
            LOCAL lvTime,lvOpFlag
            lvTime=0
            lvOpFlag=0
            MOVE_OP(0,OFF)
            WHILE 1 
                MOVE_PTABS(10,Amp*SIN(Rad*lvTime+Ipa))
                '檢測是否執行到Space個周期,執行到需要打開/關閉輸出口
                IF lvTime MOD(Space*2*Pi/Rad) = 0THEN
                    IF lvOpFlag=1 THEN
                        MOVE_OP(0,OFF)
                        lvOpFlag=0
                    ELSE
                        MOVE_OP(0,ON)
                        lvOpFlag=1
                    ENDIF
                ENDIF
                lvTime=lvTime+1
                DELAY(1)
            WEND
        ENDSUB

        (2)測試結果

        6.png

        5.如何通過硬件定時器對輸出口進行操作。

        (1)硬件定時器指令介紹

        MOVE_HWTIMER(mode, cyclonetime, optime, reptimes, opstate, opnum )

        ①mode:0-停止硬件定時器,1-動態修改參數(不修改啟動設置),2-啟動(啟動后不可重復開啟)

        ②cyclonetime:周期時間,us單位

        ③optime:有效時間,us單位

        ④reptimes:重復次數,啟動模式,reptimes =0時,軟關閉HW_TIMER,原來的脈沖沒有完成的,會繼續輸出完成;-1時無限輸出,除非主動關閉

        ⑤opstate:輸出缺省狀態,輸出口變為非此狀態后開始計時(輸出口初始狀態OFF。一般此參數設為OFF,將輸出口變為ON狀態后開始計時)

        ⑥opnum:輸出口編號,必須能硬件比較輸出的口。

        7.png

        (2)測試代碼詳情

        '主函數邏輯
        '軸參數初始化
        BASE(0,1,2)
        DPOS=0,0,0
        MPOS=0,0,0
        UNITS=100,100,100
        MAX_SPEED=10000000,10000000,10000000
        '停止線程和軸運動
        STOPTASK 1
        RAPIDSTOP(2)
        WAIT IDLE
        '清除控制器報警
        DATUM(0)
        '開始軌跡規劃
        '單在Sin曲線軌跡規劃插入對輸出口的操作指令
        MySingleAxisSinOP(0,10,Pi/50,0,0.25)
        END
        '/******************************************************************************  
        '函數功能:單軸sin函數的軌跡+輸出口多次輸出
        '函數模型:y=10*sin(Pi/50*x+0)
        ' 輸  入 :AxisNum(運動的軸)
        ' 輸  出 :
        '具體需求:要求Sin函數每隔0.5個周期打開一次輸出口,并且輸出口的以脈沖的形式輸出4個脈沖
        '******************************************************************************/
        GLOBAL SUB MySingSinOP_HwTime(AxisNum)
            LOCAL lvTime,Space
            lvTime=0
            Space=0.5
            BASE(AxisNum)
            MOVE_OP(0,OFF)
            MOVE_HWTIMER(0, 60000, 30000, 4, OFF, 0)
            MOVE_HWTIMER(2, 60000, 30000, 4, OFF, 0)
            WHILE 1 
                MOVE_PTABS(10,10*SIN(PI*lvTime/50+0))
                '檢測是否執行到Space個周期,執行到需要打開/關閉輸出口,mod是求余指令
                IF lvTime MOD (50) = 0THEN
                    MOVE_OP(0,ON)
                ENDIF
                lvTime=lvTime+1
                DELAY(1)
            WEND
        ENDSUB
        

        (3)測試結果

        8.png

        Qt進行自定義軌跡規劃的算法驗證

        1.新建QT項目,并添加正運動的動態庫到項目里面。

        (1)新建Qt項目。

        9.png

        圖2-1 新建Qt項目

        10.png

        圖2-2 選擇Qt編譯套件(kits)

        11.png

        圖2-3 選擇基類

        (2)將函數庫相關的文件復制到新建的項目中。

        12.png

        圖2-4 庫文件復制

        (3)向新建的項目里面添加函數庫的靜態庫。(zmotion.lib)

        13.png

        圖2-5 添加函數庫1

        14.png

        圖2-6 添加函數庫2

        15.png

        圖2-7 添加函數庫3

        (4)添加函數庫相關的頭文件到項目中。

        16.png

        圖2-8 添加頭文件1

        (5)聲明相關頭文件,并定義連接句柄。

        17.png

        2. 正運動動態庫相關接口說明。

        (1)運動PC函數庫編程手冊所在路徑。

        18.png

        (2)上位機如何連接控制器。
        19.png

        (3)上位機如何下發自定義的軌跡規劃參數。
        20.png

        3. Qt自定義軌跡規劃案例講解。

        (1)案例Ui講解。

        21.png

        該例程除了可以下發Sin曲線的軌跡外,還可以按照設定的角度間隔操作輸出口輸出,打開輸出口后硬件定時器將生效,會按照設定的周期去重復操作輸出口,重復操作輸出口的次數及界面上的脈沖持續個數。

        (2)案例代碼講解。

        ①連接控制器。

        //連接控制器
        void MainWindow::on_LinkButton_clicked()
        {
            int err=0;
            if(g_handle == NULL)
            {
                QString ControllerIp = ui->IPcomboBox->currentText();
                QByteArray IpStr = ControllerIp.toLocal8Bit();
                err = ZAux_OpenEth(IpStr.data(),&g_handle);
                if(err!=0)
                {
                    QMessageBox::about(this, "提示","連接失敗請確認IP正確!");
                }
            }
            else
            {
                QMessageBox::about(this, "提示", "句柄非空請先斷開鏈接!");
            }
        }

        ②啟動自定義軌跡規劃算法測試。

        //點擊啟動按鈕,如果條件滿足講會講標志位RunFlag設置為從而觸發定時器下發自定義的軌跡
        void MainWindow::on_StartRun_clicked()
        {
            if(g_handle!=0)
            {
                if(RunFlag==0)
                {
                    //初始化軸參數
                    //例程為方便測試,直接把規劃位置DPOS清空
                    ZAux_Direct_SetDpos(g_handle,0,0);
                    //例程為方便測試,直接把編碼器位置MPOS清空
                    ZAux_Direct_SetMpos(g_handle,0,0);       
                    ZAux_Direct_SetUnits(g_handle,0,1000);
                    //關閉硬件定時器
                    ZAux_Direct_HwTimer(g_handle,0,10000,5000,1,0,0);
                    //啟動硬件定時器功能,脈沖周期是50ms,高電平持續時間是25ms   
                    ZAux_Direct_HwTimer(g_handle,2,50000,25000,ui->PluseNum->text().toInt(),0,0);
                    //啟動自定義軌跡規劃算法測試
                    CurAanle=0;
                    RunFlag=1;
                }
                else
                {
                    QMessageBox::about(this, "提示", "運行中請先停止");
                }
            }
        }
        //定時器的超時服務子函數
        void MainWindow::MyTimeOut()
        {
            if(g_handle!=NULL)
            {
                //如果啟動條件滿足則開始下發運動指令
                if(RunFlag==1)
                {
                    int AxisList[1]={0};         //軸列表
                    uint32 TicksList[1]={10};    //時間列表
                    float PosList[1]={0};        //位置列表
                    float OpCycTime=0;           //操作輸出口的周期時間
                    int RemainBuff=0;            //剩余緩沖器
                    int A = ui->ParaAmp->text().toInt(); //更新Sin曲線的振幅
                    double Rad =  qDegreesToRadians(ui->ParaRad->text().toDouble());//更新Sin曲線的角速度
                    double Ipa =  qDegreesToRadians(ui->ParaIpa->text().toDouble());//更新Sin曲線的初相角
                    OpCycTime = (2*M_PI/Rad*(ui->Angle->text().toInt()/360.0));
                    //獲取剩余軸緩沖器數目
                    ZAux_Direct_GetRemain_Buffer(g_handle,0,&RemainBuff);
                    //如果剩余緩沖器夠下發新的運動指令
                    if(RemainBuff>10)
                    {
                        for(int i=0;i<10;i++)
                        {
                            // 計算正弦值
                            PosList[0] = A*qSin(Rad*CurAanle+Ipa);
                            //下發正弦曲線
                            ZAux_Direct_MultiMovePtAbs(g_handle,1,1,AxisList,TicksList,PosList);
                            //如果到達打開輸出口的角度,則下發打開輸出口的指令
                            if(((int)(CurAanle/OpCycTime))*OpCycTime==CurAanle)
                            {
                                ZAux_Direct_MoveOp(g_handle,0,0,1);
                            }
                            CurAanle=CurAanle+1;
                        }
                    }
                }
            }
        }

        (3)通過RTSys的示波器功能接口自定義軌跡的運動效果。

        22.png

        23.png

        完整代碼獲取地址

        24.png

        本次,正運動技術EtherCAT運動控制器PT/PVT實現用戶自定義軌跡規劃,就分享到這里。

        更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師。

        本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

        企業微信截圖_20240321153031.png

        正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。主要業務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等 。


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 深圳市正運動技術有限公司
        聯 系 人: 戴德弟
        電  話: 0755-32976042
        傳  真: 0755-2606 6955
        地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
        郵  編: 518100
        主  頁:
         
        該廠商相關技術文摘:
        強實時運動控制內核MotionRT750(十):運動控制中的微調軌跡動態補償
        機器視覺運動控制一體機在大功率共模電感多面AI外觀缺陷檢測應用
        MotionRT750 SoftMotion:XPCIE1032H超高速運動控制卡在AOI檢測設備上的應用
        強實時運動控制內核MotionRT750(九):內置C語言的自定義機械手模型實現
        NEPCON ASIA 2025:解鎖行業新機遇,我們在深圳等您
        開放式激光振鏡運動控制器在旋轉飛行打標中的應用
        強實時運動控制內核MotionRT750(八):us級高速交互之LabVIEW,為智能裝備提速
        液態點膠密封解決方案,柔性升級,密封更可靠!
        柔性機械手視覺供料解決方案,提升無序分揀效率!
        【2025上海工博會】正運動展位智造未來(二)
        【2025上海工博會】正運動展位智造未來(一)
        【2025上海工博會】機器視覺運動控制一體機應用預覽(三)
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 国产三级精品三级在线专区1| 国产亚洲精品线观看动态图| 熟妇人妻任你躁在线视频| 伊人无码一区二区三区| 水蜜桃精品综合视频在线| 少女韩国在线观看完整版免费| 亚洲综合色区在线播放2019| 无遮无挡爽爽免费视频| 好大好硬好深好爽想要| 视频一区二区三区自拍偷拍| 亚洲国产成人久久77| 99久久国产综合精品成人影院| 男女性杂交内射女bbwxz| 又湿又紧又大又爽A视频国产| 亚洲一区二区三区日本久久| 国产精品人妻在线观看| 开心五月婷婷综合网站| 最新日韩精品中文字幕| 少妇被搞高潮在线免费观看| 亚洲一二三区精品美妇| 人妻无码| 高清性欧美暴力猛交| 久久久久青草线综合超碰| 中文字幕一区二区三区麻豆| 国产一区二区三区导航| 日本道播放一区二区三区| 中文在线天堂中文在线天堂| 99RE6在线观看国产精品| 爱性久久久久久久久| 在线免费不卡视频| 亚洲天堂免费一二三四区| 国产精品午夜福利91| 成全电影大全在线观看| 国产精品高清视亚洲中文| 久久人妻少妇嫩草av无码专区 | 国产女人看国产在线女人| 亚洲精品香蕉一区二区| 国产女高清在线看免费观看| 亚洲色大成网站WWW永久麻豆| 野花香在线视频免费观看大全 | 国产成人高清亚洲综合|