jiangleidhr
級別: *
|
各位前輩大家好 小弟大四畢業生初次接觸PLC,要設計一個4軸機器人控制系統,就是控制四個步進電機(配套驅動器)。使用CP1H 初步設計目標是實現一個類似示教的功能。就是手動控制運動到第一點,記錄數據,再運動到第二點,記錄數據。然后按循環鍵開始在兩點間循環運動。 我的思路是用高速計數器記錄脈沖數實現位置記錄,脈沖輸出控制步進電機。高速計數器使用線性,加減模式。脈沖輸出用PULS+ACC 上電后運動到第一點高速計數器清零。 第一點運動到第二點,記錄發給各個電機脈沖數,存入存儲器D100—D130(四個電機分別的脈沖數) 循環程序中的脈沖輸出指令的脈沖個數調用D100—D130中的數據。 循環程序中先通過比較指令比較存儲器數據和0的關系,確定正反轉。 PULS調用存儲器數據為脈沖數。 脈沖輸出后存儲器數據反號。 進入下一次循環。 目前有以下幾點問題 1.脈沖控制數據為十六進制,雙字;高數計數器也是十六進制雙字嗎? 2.高速計數器0當前值存于A271(存高四位)和A270(存低四位),若要傳送到D100中,使用MOV A271 D100 加MOV A270 D101 還是使用長傳送MOVL,具體怎么用MOVL? 3.數據反號如何實現?我目前用的是用0減數據并存儲到該寄存器中。 4.數據運算。沒有十六進制的運算指令,是否需要轉為十進制運算,結果再轉為十六進制。 5.數據運算中帶符號不帶符號和有CY無CY是什么含義? 6.高速計數器的數據中如何表示的正負。 新人初次接觸PLC,還請各位前輩不吝賜教。 |
---|---|
|
liuxiaba
級別: 探索解密
|
1、字節沒好大要求,主要看你的速度需求,有速度需求就要求字節問題2、一般使用MOV指令,詳解見軟件內幫助,4、不需要轉直接負值。 |
---|---|
|
卓發智能
相互學習,共同進步。
級別: 工控俠客
|
歐姆龍PLC控制步進或伺服不需要正負脈沖,只需要更改脈沖指令的控制數據就可以了,不用0減什么。三菱是需要正負脈沖數據來確定電機正反轉的。 |
|
---|---|---|
|
xyzenter
活在當下,順其自然
級別: 略有小成
|
1.樓主所說的雙字傳送,在傳送指令后面帶個L的指令就是,雙字數據同理,比如MOVL,+L,-L,*L,=L等等,詳情請看編程手冊; 2.歐姆龍里面的十六進制數據負數不需要0-什么的,直接按負16進制數格式寫就行,就是高位是#F---什么的;在運動控制中,不需要另外轉換,直接使用十六進制即可; 3.如果樓主的脈沖輸出定義了原點(也可以搜索完原點后自己用@INI #0000 #0002 #0000自己定義原點),推薦用PRV指令,如PRV #0000 D0將脈沖0的當前位置(原點為0)的脈沖量存到D0,D1中,其它軸同理。 4.MOVL A276 D0將A276,A277中的內容分別放到D0,D1中。 其實多花點時間看操作手冊就行,里面都有的。 |
---|---|
|