0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用PLC簡易畫圓

1X4o_GKB1508 ? 2019-02-21 17:40 ? 次閱讀

PLC怎么畫圓?相信很多朋友都思考過這個(gè)問題,PLC200 smart并沒有開發(fā)這個(gè)功能,需要自己寫程序?qū)崿F(xiàn),本文和喜歡工控和開發(fā)的朋友們交流一下這個(gè)有趣的問題,筆者在調(diào)試成功的基礎(chǔ)上附上視頻和程序介紹一種畫圓的方法,此方法通用性強(qiáng),可以根據(jù)這個(gè)原理方法繪制其它不同的曲線。

如何用PLC簡易畫圓

以上圖的拋物線y=x^2為例分析,我們知道一個(gè)方向上走勻速,一個(gè)方向上以恒定的加速度運(yùn)動(dòng),軌跡就是拋物線。同樣我們可以想到,X軸勻速運(yùn)動(dòng),Y軸變速運(yùn)動(dòng),運(yùn)動(dòng)軌跡就會(huì)走出曲線。勻速運(yùn)動(dòng)時(shí)用路程除以時(shí)間就可以得到速度,而變速度就需要從微分的角度來計(jì)算,即:

如何用PLC簡易畫圓

我們假定X軸方向上走2mm/s的勻速,即:

如何用PLC簡易畫圓

如何用PLC簡易畫圓

有了前面的分析,我們可以試試分析這個(gè)以50mm為半徑的圓形:

可以看到(-50,50)區(qū)間內(nèi)每一個(gè)X對(duì)應(yīng)兩個(gè)Y值,兩個(gè)Y值一正一負(fù)且絕對(duì)值相等,對(duì)應(yīng)位置的導(dǎo)數(shù)值也是一正一負(fù)且絕對(duì)值相等,那么當(dāng)X軸方向上以2mm/s的速度向右運(yùn)動(dòng),要得到這個(gè)圓弧的軌跡,在任意一個(gè)X位置對(duì)應(yīng)的Y的速度是:

如何用PLC簡易畫圓

這里都取了X方向的速度為2mm/s,是一個(gè)比較慢的速度,再根據(jù)Vy的公式(編寫入中斷程序進(jìn)行運(yùn)算),可以編寫程序繪制圓形了,只需要注意在在繪制途中X方向和Y方向改變的位置要做一些處理,下面用程序與注釋來說明整段程序的過程。(下圖是程序建立坐標(biāo)原點(diǎn)即參考點(diǎn)后實(shí)際走出來的軌跡)

如何用PLC簡易畫圓

首先畫圓形需要的是一個(gè)兩軸控制臺(tái)(包括步進(jìn)電機(jī)和畫圖的平臺(tái)等),兩個(gè)驅(qū)動(dòng)器,一臺(tái)200PLC,筆者視頻里用的是一個(gè)三軸的平臺(tái),驅(qū)動(dòng)器細(xì)分調(diào)至3200,寫程序之前使用運(yùn)動(dòng)向?qū)ВO(shè)置兩個(gè)軸,測(cè)量系統(tǒng)選擇工程單位,方便我們計(jì)算,也更直觀,細(xì)分3200,我的步進(jìn)電機(jī)每轉(zhuǎn)一圈前進(jìn)5mm,如下圖所示:

如何用PLC簡易畫圓

方向控制選項(xiàng)如下圖,X軸選擇單相2輸出,因?yàn)楫媹A過程中X方向上有正有負(fù);Y軸選擇單相1輸出,因?yàn)閅軸運(yùn)動(dòng)靠的是點(diǎn)動(dòng)RUN控制,筆者在調(diào)試過程中發(fā)現(xiàn)使用單相2輸出時(shí),使用點(diǎn)動(dòng)的Director或者Q0.7來控制方向會(huì)有時(shí)候不受控制,這是因?yàn)槭謩?dòng)子程序里包含了方向控制導(dǎo)致程序沖突,所以這里Y軸使用單相1輸出,調(diào)試結(jié)果很穩(wěn)定。其余對(duì)電機(jī)速度,JOG選項(xiàng)進(jìn)行一些常規(guī)設(shè)置即可。(筆者嘗試了為實(shí)現(xiàn)Y軸變速運(yùn)動(dòng),使用組態(tài)中的相對(duì)運(yùn)動(dòng)和絕對(duì)運(yùn)動(dòng)子程序,為其提供變速度且實(shí)時(shí)改變終點(diǎn)位置,結(jié)果是Y軸沒有動(dòng)作,因此用相對(duì)和絕對(duì)不能控制一個(gè)速度和位置的數(shù)值實(shí)時(shí)變化的運(yùn)動(dòng),因此最后選擇了點(diǎn)動(dòng)來實(shí)現(xiàn)這個(gè)變速的功能)

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

然后開始寫主程序:

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

如何用PLC簡易畫圓

這是筆者原創(chuàng)的程序,200smart并沒有開發(fā)相應(yīng)的功能,三菱plc有圓弧插補(bǔ)功能,筆者沒有接觸過三菱plc,通過查閱PLC圓弧插補(bǔ)的資料和原理,對(duì)兩種方法進(jìn)行了對(duì)比:圓弧插補(bǔ)功能的原理是將圓分解成N段折線來畫,其誤差在某范圍內(nèi)可控,而以上介紹的方法從純數(shù)學(xué)的角度來講是相當(dāng)完美的,但是也有缺點(diǎn),它的完美程度取決于中斷運(yùn)算的時(shí)間和X方向上的速度,如果運(yùn)算時(shí)間設(shè)計(jì)較長,Y軸加速情況下會(huì)丟步較多,減速情況下會(huì)過沖較多,運(yùn)算時(shí)間短對(duì)CPU要求較高,X方向速度過快會(huì)導(dǎo)致丟步較多,另外由于是浮點(diǎn)數(shù)運(yùn)算,每一步本身就存在極少量丟步。

盡管有這么多理論上的缺陷,但是由于10ms運(yùn)算間隙時(shí)間極短且X軸方向上走的較慢,實(shí)際走的圓非常的光滑接近完美的圓。

大家看完此文應(yīng)該可以完成很多曲線的編程畫自己想畫的圖形了,但是根據(jù)函數(shù)的復(fù)雜性和求導(dǎo)的難度使得編程有難易程度的區(qū)別,可以挑戰(zhàn)一下試試畫一個(gè)愛心,如下圖。該程序我會(huì)在下一篇文章寫給大家供參考。

如何用PLC簡易畫圓

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5001

    文章

    12948

    瀏覽量

    459283

原文標(biāo)題:PLC畫圓很難嘛?其實(shí),只要有方法,這都是浮云!

文章出處:【微信號(hào):GKB1508,微信公眾號(hào):工控幫】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    畫線畫圓程序

    在12864的液晶屏上畫線畫圓都需要12864中讀出某個(gè)地址的數(shù)據(jù),然后在寫進(jìn)去。我現(xiàn)在有塊迷你型的12864,他本身不帶任何芯片。那我應(yīng)該如何編寫這種畫圓畫線的函數(shù)?
    發(fā)表于 03-05 15:56

    請(qǐng)問怎么在圖像中畫圓?

    在labview中用IMAQ打開圖像后,怎么在圖像中畫圓?而且是用圓心加半徑的方法。我用draw circle by radius函數(shù)時(shí),連不上圖像。比如在這個(gè)圖像中畫圓
    發(fā)表于 04-19 16:55

    何用labview做程序畫圓孔衍射波形

    何用labview做程序畫圓孔衍射波形?
    發(fā)表于 05-12 18:12

    在TFT上畫圓的算法是什么?

    以上是我自己編的一段畫圓的程序,其中x , y 表示畫圓的圓心。r 圓的半徑。。。?LCD_WritePoint() 為畫點(diǎn)函數(shù)。請(qǐng)問為什么運(yùn)行程序后怎么變成了整個(gè)屏幕的刷屏了?請(qǐng)問原子哥你的畫圓的算法是什么?
    發(fā)表于 03-25 03:27

    CAD制圖初學(xué)入門之CAD畫圓方法一

    `使用CAD繪圖軟件的過程中,圓和弧是比較常見的,但是對(duì)于很多CAD制圖初學(xué)入門者來說,由于對(duì)CAD制圖方法不夠了解,所以不知道如何繪制圓或者圓弧,下面我們就來介紹一下已知圓心畫圓的CAD畫圓方法
    發(fā)表于 01-13 10:23

    cad制圖初學(xué)入門畫圓之CAD畫圓方法

    使用CAD繪圖軟件的過程中,圓和弧是比較常見的,但是對(duì)于很多CAD制圖初學(xué)入門者來說,由于對(duì)CAD制圖方法不夠了解,所以不知道如何繪制圓或者圓弧,下面我們就來介紹一下已知端點(diǎn)畫圓的CAD畫圓方法。1
    發(fā)表于 01-14 17:05

    何用CP2200實(shí)現(xiàn)MCU的簡易型以太網(wǎng)接口?

    CP2200的主要功能是什么?如何用CP2200實(shí)現(xiàn)MCU的簡易型以太網(wǎng)接口?
    發(fā)表于 05-31 06:21

    如何學(xué)用circle畫圓

    問題描述:學(xué)用circle畫圓形。程序源碼:#includevoid main(){int driver,mode,i;float j=1,k=1;driver=VGA;mode=VGAHI
    發(fā)表于 07-14 07:27

    何用circle畫圓形?

    何用circle畫圓形?
    發(fā)表于 10-14 07:24

    中心點(diǎn)畫圓和Bresenham畫圓,哪種算法速度更快?

    中心點(diǎn)畫圓和Bresenham畫圓,哪種算法速度更快?
    發(fā)表于 10-28 08:04

    西門子PLC入門級(jí)應(yīng)用實(shí)例:簡易機(jī)械手控制

    今天,小編給大家介紹一個(gè)西門子PLC入門級(jí)應(yīng)用實(shí)例,簡易機(jī)械手的控制。
    的頭像 發(fā)表于 09-20 17:04 ?1.4w次閱讀

    何用指令使PLC輸出脈沖的方法

    PLC輸出脈沖的方法還是比較多的,我們可以根據(jù)控制不同的負(fù)載,通過不同的指令輸出脈沖的頻率是不一樣的。下面我們以日系PLC(可編程控制器)與各位朋友說說如何用指令使PLC一直輸出脈沖
    的頭像 發(fā)表于 10-19 11:03 ?3.6w次閱讀

    【STM32】STM32 OLED打點(diǎn)劃線畫圓 OLED電子羅盤 程序

    【STM32】STM32 OLED打點(diǎn)劃線畫圓 OLED電子羅盤 程序
    發(fā)表于 12-08 12:21 ?47次下載
    【STM32】STM32 OLED打點(diǎn)劃線<b class='flag-5'>畫圓</b> OLED電子羅盤 程序

    何用一臺(tái)plc物聯(lián)網(wǎng)網(wǎng)關(guān)連接多臺(tái)以太網(wǎng)PLC?

    何用一臺(tái)plc物聯(lián)網(wǎng)網(wǎng)關(guān)連接多臺(tái)以太網(wǎng)PLC?
    的頭像 發(fā)表于 02-02 15:59 ?1007次閱讀
    如<b class='flag-5'>何用</b>一臺(tái)<b class='flag-5'>plc</b>物聯(lián)網(wǎng)網(wǎng)關(guān)連接多臺(tái)以太網(wǎng)<b class='flag-5'>PLC</b>?

    簡易PLC的應(yīng)用領(lǐng)域包括哪些?

    (1)家庭自動(dòng)化:簡易PLC可以用于控制家庭自動(dòng)化系統(tǒng),例如燈光控制、溫度調(diào)節(jié)、窗簾控制等。它可以接收傳感器信號(hào),并根據(jù)預(yù)設(shè)的邏輯和時(shí)間觸發(fā)相應(yīng)的輸出操作。 (2)小型機(jī)器控制:對(duì)于小型機(jī)器或設(shè)備
    的頭像 發(fā)表于 09-13 08:35 ?602次閱讀
    <b class='flag-5'>簡易</b>型<b class='flag-5'>PLC</b>的應(yīng)用領(lǐng)域包括哪些?