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

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

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

新人初次接觸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、不需要轉(zhuǎn)直接負(fù)值。
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2430 個
工控威望: 3018 點
下載積分: 10211 分
在線時間: 646(小時)
注冊時間: 2008-08-03
最后登錄: 2024-11-06
查看卓發(fā)智能的 主題 / 回貼
2樓  發(fā)表于: 2016-03-31 10:02
歐姆龍PLC控制步進(jìn)或伺服不需要正負(fù)脈沖,只需要更改脈沖指令的控制數(shù)據(jù)就可以了,不用0減什么。三菱是需要正負(fù)脈沖數(shù)據(jù)來確定電機(jī)正反轉(zhuǎn)的。
相信自我!
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2430 個
工控威望: 3018 點
下載積分: 10211 分
在線時間: 646(小時)
注冊時間: 2008-08-03
最后登錄: 2024-11-06
查看卓發(fā)智能的 主題 / 回貼
3樓  發(fā)表于: 2016-03-31 10:05
和帶符號的比較指令進(jìn)行比較電機(jī)運(yùn)行脈沖來知道電機(jī)運(yùn)行方向。
相信自我!
xyzenter
活在當(dāng)下,順其自然
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 135 個
工控威望: 266 點
下載積分: 2080 分
在線時間: 108(小時)
注冊時間: 2014-04-09
最后登錄: 2021-04-13
查看xyzenter的 主題 / 回貼
4樓  發(fā)表于: 2016-12-06 09:00
1.樓主所說的雙字傳送,在傳送指令后面帶個L的指令就是,雙字?jǐn)?shù)據(jù)同理,比如MOVL,+L,-L,*L,=L等等,詳情請看編程手冊;
2.歐姆龍里面的十六進(jìn)制數(shù)據(jù)負(fù)數(shù)不需要0-什么的,直接按負(fù)16進(jìn)制數(shù)格式寫就行,就是高位是#F---什么的;在運(yùn)動控制中,不需要另外轉(zhuǎn)換,直接使用十六進(jìn)制即可;

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

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

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