FMS-3000 программирование
Добавлено: 26 янв 2019, 18:18
Здравствуйте. FMS-3000 на токарном ось X и Z, шпиндель с сервоприводом ось C. Сегодня решил попробовать поизучать макропрограммирование и натолкнулся на препятствие.
У меня почему-то не получается работать с массивом:
dim ev[3]
ev[0]=1
ev[1]=2
ev[2]=3
приводит к тому, что во всех трёх переменных хранится «3». Если код немного поменять:
dim ev[3]
ev[2]=6
ev[1]=28
ev[0]=2
то везде будет «2». То есть последнее значение сохраняется во всех переменных массива. Ниже код нарезки эвольвентных шлицов. Но вместо эвольвенты программа режет 2 прямые канавки, из-за того что в массиве все цифры одинаковые:"2.83". Что я делаю не так?
И второй вопрос: хотел, что бы в окне показывался № нарезаемого зуба и № прохода, но компьютер видимо считает на перёд и в первые 2 прохода уже показывает 11 зуб. Как сделать что бы показывал реальные проход и зуб?
rem Шлицы эвольвентные на валу z26
luft=0
dim ev[23]
ev[22]=0+luft
ev[21]=0.09+luft
ev[20]=0.18+luft
ev[19]=0.27+luft
ev[18]=0.36+luft
ev[17]=0.46+luft
ev[16]=0.56+luft
ev[15]=0.66+luft
ev[14]=0.76+luft
ev[13]=0.87+luft
ev[12]=0.98+luft
ev[11]=1.09+luft
ev[10]=1.21+luft
ev[9]=1.33+luft
ev[8]=1.45+luft
ev[7]=1.58+luft
ev[6]=1.71+luft
ev[5]=1.85+luft
ev[4]=2+luft
ev[3]=2.16+luft
ev[2]=2.33+luft
ev[1]=2.53+luft
ev[0]=2.83+luft
rem пауза мс
pa=4
zub=26
gradus=360/zub
zpaz=42
lp=0
window(500,300,700,400)
print "подготовка"
G90G54
T1
G0Z1X0
G4Epa
C0
G4Epa
G25Lzub
M8
G4Epa
G90X0
G4Epa
G1G91CgradusF1500
G4Epa
for i=0 to 4
cls
print zub, "зуб; ",i,"проход"
X-0.1
G4Epa
C-ev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
Cev
G4Epa
Cev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
C-ev
G4Epa
next
for i=5 to 23
cls
print zub, "зуб; ",i,"проход"
iff lp=0 then
X-0.1
G4Epa
C-ev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
Cev
G4Epa
lp=1
else
X-0.1
G4Epa
Cev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
C-ev
G4Epa
lp=0
endiff
next
M9
M25
G0G90C0
X100
M30
У меня почему-то не получается работать с массивом:
dim ev[3]
ev[0]=1
ev[1]=2
ev[2]=3
приводит к тому, что во всех трёх переменных хранится «3». Если код немного поменять:
dim ev[3]
ev[2]=6
ev[1]=28
ev[0]=2
то везде будет «2». То есть последнее значение сохраняется во всех переменных массива. Ниже код нарезки эвольвентных шлицов. Но вместо эвольвенты программа режет 2 прямые канавки, из-за того что в массиве все цифры одинаковые:"2.83". Что я делаю не так?
И второй вопрос: хотел, что бы в окне показывался № нарезаемого зуба и № прохода, но компьютер видимо считает на перёд и в первые 2 прохода уже показывает 11 зуб. Как сделать что бы показывал реальные проход и зуб?
rem Шлицы эвольвентные на валу z26
luft=0
dim ev[23]
ev[22]=0+luft
ev[21]=0.09+luft
ev[20]=0.18+luft
ev[19]=0.27+luft
ev[18]=0.36+luft
ev[17]=0.46+luft
ev[16]=0.56+luft
ev[15]=0.66+luft
ev[14]=0.76+luft
ev[13]=0.87+luft
ev[12]=0.98+luft
ev[11]=1.09+luft
ev[10]=1.21+luft
ev[9]=1.33+luft
ev[8]=1.45+luft
ev[7]=1.58+luft
ev[6]=1.71+luft
ev[5]=1.85+luft
ev[4]=2+luft
ev[3]=2.16+luft
ev[2]=2.33+luft
ev[1]=2.53+luft
ev[0]=2.83+luft
rem пауза мс
pa=4
zub=26
gradus=360/zub
zpaz=42
lp=0
window(500,300,700,400)
print "подготовка"
G90G54
T1
G0Z1X0
G4Epa
C0
G4Epa
G25Lzub
M8
G4Epa
G90X0
G4Epa
G1G91CgradusF1500
G4Epa
for i=0 to 4
cls
print zub, "зуб; ",i,"проход"
X-0.1
G4Epa
C-ev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
Cev
G4Epa
Cev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
C-ev
G4Epa
next
for i=5 to 23
cls
print zub, "зуб; ",i,"проход"
iff lp=0 then
X-0.1
G4Epa
C-ev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
Cev
G4Epa
lp=1
else
X-0.1
G4Epa
Cev
G4Epa
Z-zpaz
G4Epa
X1
G4Epa
Zzpaz
G4Epa
X-1
G4Epa
C-ev
G4Epa
lp=0
endiff
next
M9
M25
G0G90C0
X100
M30