用pto怎么才能讓步進(jìn)電機(jī)走完一段距離后自動(dòng)反轉(zhuǎn)回來(lái)?外部沒(méi)有開(kāi)關(guān)
答:1、主程序先正轉(zhuǎn),等到正轉(zhuǎn)完了就中斷,中斷中接通個(gè)輔助觸點(diǎn)(m0.x),當(dāng)m.0x閉合,住程序中的反轉(zhuǎn)開(kāi)始運(yùn)做.這樣子就ok了。
2、用pto指令讓q0.0orq0.1高速脈沖,另一個(gè)點(diǎn)如q0.2做方向信號(hào),就可以控制正反轉(zhuǎn)了,速度快慢就要控制輸出脈沖周期了,周期越短速度越快,如果你速度很快的話請(qǐng)考慮緩慢加速,不然它是啟動(dòng)不了的,如果方向也變的快的話就要還做一個(gè)緩慢減速,不然它振動(dòng)會(huì)蠻厲害,而且也會(huì)失步。
3、程network1//用于單段脈沖串操作的主程序(pto)
//首次掃描時(shí),將映像寄存器位設(shè)為低
//并調(diào)用子程序0
ldsm0.1
rq0.01
callsbr_0
network1//子程序0開(kāi)始
ldsm0.0
movb16#8dsmb67//設(shè)置控制字節(jié):
//-選擇pto操作
//-選擇單段操作
//-選擇毫秒增加
//-設(shè)置脈沖計(jì)數(shù)和周期數(shù)值
//-啟用pto功能
movw+500smw68//將周期設(shè)為500毫秒。
movd+4smd72//將脈沖計(jì)數(shù)設(shè)為4次脈沖。
atchint_019//將中斷例行程序0定義為
//處理pto完成中斷的中斷。
eni//全局中斷啟用
pls0//激活pto操作,pls0=>q0.0
movb16#89smb67//預(yù)載控制字節(jié),用于隨后的
//周期改動(dòng)。
network1//中斷0開(kāi)始
//如果當(dāng)前周期為500毫秒:
//將周期設(shè)為1000毫秒,并生成4次脈沖
ldw=smw68+500
movw+1000smw68
pls0
creti
network2
//如果當(dāng)前周期為1000毫秒:
//將周期設(shè)為500毫秒,并生成4次脈沖
ldw=smw68+1000
movw+500smw68
pls0序注釋