limiju
級別: 家園常客
|
以下是家園朋友tianqiji的帖子,請各位大俠回答小弟的一個疑問,對各位是很簡單的問題,可卻纏繞著剛入門的我 工件的實際位置通過什么方式得到? 原貼在: [url]http://m.le-linge.com/bbs/read-gktid-16251-keyword-%B2%BD%BD%F8.html[/url] 步進電機的步距角為1.8度,驅動器有細分的功能,考慮到精度和速度的問題,我們選用了半步運行的方式。絲桿的螺距為5mm,即步進電機旋轉一周,它所拖動的工件移動5個mm,PLC則輸出400個脈沖,即每毫米需要輸出80個脈沖。5號腳高電平則電機正轉,反之亦反。 設計的要求是這樣的:在人機界面上輸入工件要到的位置(以mm為單位),輸入完成后工件自動運行到指定位置停下。如果設定的位置大于實際的位置,則工件正向運轉到位,反之亦反。 D200:人機界面輸入的工件要求位置 D202:工件的實際位置 D204:實際位置與設定位置之差值 程序如下: LDD> D200 D202 DSUBP D200 D202 D204 ;將差值送到D204 SET Y2 ;如果設定值大于實際值則正轉 LDD<= D200 D202 DSUBP D202 D200 D204 ;將差值送到D204 RST Y2 ;如果設定值小于實際值則反轉 LDD<> D200 D202 ;設定值與實際值不等 PLS M0 ANI M0 DPLSY K1000 D206 Y0 ;以1000赫茲的頻率輸出脈沖所需的脈沖數 LD M0 DMUL D204 K80 D206 ;所需輸出的脈沖數 LD M8029 DADDP D202 D204 D202 ;脈沖輸出完成后實際位置與設定位置一樣 END |
---|---|
|
limiju
級別: 家園常客
|
我現有PLC一臺,步進電機及驅動器(可半步細分),文本顯示器,我能實現上述程序嗎,可是如何給D202賦值讓我束手無策,如果有個旋轉編碼器我會想法試試,沒有編碼器我能實現嗎,請各位大哥給新手答疑,謝謝 |
---|---|
|
fjqz00
級別: 論壇先鋒
|
可以用限位開關之類的做一個原點位,系統首次啟動時,讓其在原點啟動,以后再運行的位置就能通過步進電機運行的圈數知道當前的工件位置了。 可以不用編碼器,上面不是有“即每毫米需要輸出80個脈沖”,我們只要知道驅動步進電機運轉時,發送了多少個脈沖,按“發送的脈沖數目÷80=工件移動的距離”這樣來換算就知道了。 |
---|---|
|