Не работает код M79, не работают инверсии входов.

Post Reply
Alexey
Posts: 4
Joined: Mon Dec 16, 2019 1:03 pm

Не работает код M79, не работают инверсии входов.

Post by Alexey »

Приветствую!
Версия ПО - 1.88.3648
Контроллер ЕТ-1
Windows 7 x64

Проблема 1:
Не работают вот эти инверсии входов, вот вообще никак:
Image

Проблема 2:
Нужно использовать смещение одного мотора в макросе выравнивания портала.
Генератор это делает с помощью кода M79:
M79 L3140 P0
G91 G0 Y 33.0000 F 2000.00
M79 L3140 P1

Изначально mycnc ругался на отсутствие m79, сгенерировал его из PLC шаблонов:

Code: Select all

//turn ON/OFF given motor channel
#define var_address  var00
#define var_value    var01

main()
{


timer=0;

message=PLCCMD_MOTION_CONTINUE;
texit=timer+2; do{ timer++;}while(timer<texit); //pause to push the message

//P==0 - turn off channel1
//P==1 - turn on  channel1
//P==2 - turn off channel2
//P==3 - turn on channel2
Pnumber=eparam&0xff;//P-parameter


lparam=eparam>>16;//L-parameter

axis=(lparam>>2)&0xf;     //L-parameter >> 2 low bits - dir
channel1=(lparam>>6)&0xf; //L-parameter >> 3 bits 
channel2=(lparam>>10)&0xf;//L-parameter >> 3 bits 


if (Pnumber==0)
{
var_value=15;
var_address=112+channel1;//channel 0 turning off
message=PLCCMD_SET_CNC_VAR;
texit=timer+2;do{timer++;}while(timer<texit);
};

if (Pnumber==1)
{
   var_address=112+channel1;//channel 0 set as X-
   dir=lparam & 1;
   var_value=axis;
   if (dir!=0)
   {
   var_value=16+axis;
   };
   message=PLCCMD_SET_CNC_VAR;
   texit=timer+10;do{timer++;}while(timer<texit);
};

if (Pnumber==2)
{
var_address=112+channel2;//channel 1 turning off
var_value=15;
message=PLCCMD_SET_CNC_VAR;
texit=timer+2;do{timer++;}while(timer<texit);
};

if (Pnumber==3)
{
   var_address=112+channel2;//channel 1 set as X+
   dir=lparam & 2;
   var_value=axis;
   if (dir!=0)
   {
   var_value=16+axis;
   };
   message=PLCCMD_SET_CNC_VAR;
   texit=timer+10;do{timer++;}while(timer<texit);
};

exit(99);

};
Скомпилировал, загрузил в PLC. Теперь не ругается, только не работает) ПРи такой вставке в макросе выравнивания портала едут оба мотора, отключение указанного не происходит.

Что делать то?) Опять винда виновата?))

mycnc
Posts: 712
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Не работает код M79, не работают инверсии входов.

Post by mycnc »

Контроллер ЕТ1 снят с производства около 5 лет назад.
В то время функция инверсии входов отсутствовала в софте и контроллере. ЕТ1 не поддерживает такую команду.

Функция выравнивания портала должна работать на ЕТ1, хотя интерфейс команд мог быть изменен за эти годы.

Можно посмотреть скриншот экрана Оси-Моторы? (Какую ось надо выравнивать, какие выходы используются для этой оси)
Какая версия прошивки ЕТ1?

Alexey
Posts: 4
Joined: Mon Dec 16, 2019 1:03 pm

Re: Не работает код M79, не работают инверсии входов.

Post by Alexey »

Во, я узнал что 5ть лет назад я купил уже снятый с производства контроллер =) Надеюсь он же с поддержки не снят?

Само выравнивание портала работает - вопросов нет, не работает именно код M79 в нем, который раньше не использовал, понадобилось - а фиг там.
Image
Image

отключение канала пробовал как штатное с P0/P1, так и второй канал P2/P3 - не работает.

Прошивка ЕТ-1 15.040

Post Reply