jiangleidhr
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看jiangleidhr的 主題 / 回貼
樓主  發(fā)表于: 2016-03-30 11:27
各位前輩大家好
小弟大四畢業(yè)生初次接觸PLC,要設計一個4軸機器人控制系統(tǒng),就是控制四個步進電機(配套驅動器)。使用CP1H
初步設計目標是實現(xiàn)一個類似示教的功能。就是手動控制運動到第一點,記錄數(shù)據(jù),再運動到第二點,記錄數(shù)據(jù)。然后按循環(huán)鍵開始在兩點間循環(huán)運動。

我的思路是用高速計數(shù)器記錄脈沖數(shù)實現(xiàn)位置記錄,脈沖輸出控制步進電機。高速計數(shù)器使用線性,加減模式。脈沖輸出用PULS+ACC
上電后運動到第一點高速計數(shù)器清零。
第一點運動到第二點,記錄發(fā)給各個電機脈沖數(shù),存入存儲器D100—D130(四個電機分別的脈沖數(shù))
循環(huán)程序中的脈沖輸出指令的脈沖個數(shù)調用D100—D130中的數(shù)據(jù)。
循環(huán)程序中先通過比較指令比較存儲器數(shù)據(jù)和0的關系,確定正反轉。
PULS調用存儲器數(shù)據(jù)為脈沖數(shù)。
脈沖輸出后存儲器數(shù)據(jù)反號。
進入下一次循環(huán)。

目前有以下幾點問題
1.脈沖控制數(shù)據(jù)為十六進制,雙字;高數(shù)計數(shù)器也是十六進制雙字嗎?
2.高速計數(shù)器0當前值存于A271(存高四位)和A270(存低四位),若要傳送到D100中,使用MOV A271 D100 加MOV A270 D101 還是使用長傳送MOVL,具體怎么用MOVL?
3.數(shù)據(jù)反號如何實現(xiàn)?我目前用的是用0減數(shù)據(jù)并存儲到該寄存器中。
4.數(shù)據(jù)運算。沒有十六進制的運算指令,是否需要轉為十進制運算,結果再轉為十六進制。
5.數(shù)據(jù)運算中帶符號不帶符號和有CY無CY是什么含義?
6.高速計數(shù)器的數(shù)據(jù)中如何表示的正負。

新人初次接觸PLC,還請各位前輩不吝賜教。
liuxiaba
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 57 個
工控威望: 140 點
下載積分: 10244 分
在線時間: 55(小時)
注冊時間: 2016-03-30
最后登錄: 2018-05-22
查看liuxiaba的 主題 / 回貼
1樓  發(fā)表于: 2016-03-30 17:03
1、字節(jié)沒好大要求,主要看你的速度需求,有速度需求就要求字節(jié)問題2、一般使用MOV指令,詳解見軟件內(nèi)幫助,4、不需要轉直接負值。
卓發(fā)智能
相互學習,共同進步。
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2437 個
工控威望: 3025 點
下載積分: 10357 分
在線時間: 649(小時)
注冊時間: 2008-08-03
最后登錄: 2024-11-14
查看卓發(fā)智能的 主題 / 回貼
2樓  發(fā)表于: 2016-03-31 10:02
歐姆龍PLC控制步進或伺服不需要正負脈沖,只需要更改脈沖指令的控制數(shù)據(jù)就可以了,不用0減什么。三菱是需要正負脈沖數(shù)據(jù)來確定電機正反轉的。
相信自我!
卓發(fā)智能
相互學習,共同進步。
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2437 個
工控威望: 3025 點
下載積分: 10357 分
在線時間: 649(小時)
注冊時間: 2008-08-03
最后登錄: 2024-11-14
查看卓發(fā)智能的 主題 / 回貼
3樓  發(fā)表于: 2016-03-31 10:05
和帶符號的比較指令進行比較電機運行脈沖來知道電機運行方向。
相信自我!
xyzenter
活在當下,順其自然
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 135 個
工控威望: 266 點
下載積分: 2080 分
在線時間: 108(小時)
注冊時間: 2014-04-09
最后登錄: 2021-04-13
查看xyzenter的 主題 / 回貼
4樓  發(fā)表于: 2016-12-06 09:00
1.樓主所說的雙字傳送,在傳送指令后面帶個L的指令就是,雙字數(shù)據(jù)同理,比如MOVL,+L,-L,*L,=L等等,詳情請看編程手冊;
2.歐姆龍里面的十六進制數(shù)據(jù)負數(shù)不需要0-什么的,直接按負16進制數(shù)格式寫就行,就是高位是#F---什么的;在運動控制中,不需要另外轉換,直接使用十六進制即可;

3.如果樓主的脈沖輸出定義了原點(也可以搜索完原點后自己用@INI #0000 #0002 #0000自己定義原點),推薦用PRV指令,如PRV #0000 D0將脈沖0的當前位置(原點為0)的脈沖量存到D0,D1中,其它軸同理。

4.MOVL  A276  D0將A276,A277中的內(nèi)容分別放到D0,D1中。

其實多花點時間看操作手冊就行,里面都有的。