EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Значит расширение надо ставит .c а не .comp?
У меня в системе при поиске .comp не находит ни одного файла кроме моих
У меня в системе при поиске .comp не находит ни одного файла кроме моих
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
емного не так:
можно компоненты писать на 'языке' comp,
можно на чистом си,можно на питоне
(смотри терминале man halcompile)
в зависимости от языка и расширение файла
---------
то , что в системе нет файлов comp это нормально -
ведь это исходники компонента,а после
компиляции в системе фотмируется файл NAME.ko
можно компоненты писать на 'языке' comp,
можно на чистом си,можно на питоне
(смотри терминале man halcompile)
в зависимости от языка и расширение файла
---------
то , что в системе нет файлов comp это нормально -
ведь это исходники компонента,а после
компиляции в системе фотмируется файл NAME.ko
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
for i in 11,14,17:
if(in>i) {
out=i;
timer0.5;
out=in;
old_in=in;
}
if(old_in<i){
out=i;
timer0.5;
out=in;
old_in=in;
}
Вот это как можно организовать для компиляции на си.
Библиотеки какие нибудь надо подключать?
Как отработать компонент в си, выводом в терминал что ли?
AVR я программировал в си, и с этим должен наверное разобратся
Только надо начальный толчек, ход действий еще не понятен мне
if(in>i) {
out=i;
timer0.5;
out=in;
old_in=in;
}
if(old_in<i){
out=i;
timer0.5;
out=in;
old_in=in;
}
Вот это как можно организовать для компиляции на си.
Библиотеки какие нибудь надо подключать?
Как отработать компонент в си, выводом в терминал что ли?
AVR я программировал в си, и с этим должен наверное разобратся
Только надо начальный толчек, ход действий еще не понятен мне
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Для начала оформить цикл for правильно, тот что у тнбя я не знаю на каком языке )
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
На си цикл пишется так:
Код: Выделить всё
for (int i = 0;i<10;i++)
{
... тут получаем переменную i у которой значение меняется от нуля до 9...
}
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
толчек такой:
есть программа на си(или .comp синтаксис)и
есть Hal в емс
пишем программку на си , которая будет брать из ст.входа
наши данные((вроде как наш галетник) , ав ст. выход будет выдавать наш результат...
в той же Geany отрабатываем все моменты ,обкатываем нашу прожку,
потом просто создаем пины входа,куда будем подавать данные и пины выхода...
еще будут два пина для задержки(паузы)
----------------
я завтра буду уже с нормальным компом и напишу тебе компонент(но это не исключает полезности разобраться во всем самому))))
зы
то , что я дал - это набросок, в си с массивом работают (синтаксис) по другому...
есть программа на си(или .comp синтаксис)и
есть Hal в емс
пишем программку на си , которая будет брать из ст.входа
наши данные((вроде как наш галетник) , ав ст. выход будет выдавать наш результат...
в той же Geany отрабатываем все моменты ,обкатываем нашу прожку,
потом просто создаем пины входа,куда будем подавать данные и пины выхода...
еще будут два пина для задержки(паузы)
----------------
я завтра буду уже с нормальным компом и напишу тебе компонент(но это не исключает полезности разобраться во всем самому))))
зы
то , что я дал - это набросок, в си с массивом работают (синтаксис) по другому...
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
component port "Inverter";
pin in bit in;
pin out bit out;
function _ nofp;
license "GPL";
;;
FUNCTION(_) { out = ! in; }
Вот ваш компонент вроде скомпилировался как надо.
Как он будет работать? не обьясните?Синткс тут си или comp?
pin in bit in;
pin out bit out;
function _ nofp;
license "GPL";
;;
FUNCTION(_) { out = ! in; }
Вот ваш компонент вроде скомпилировался как надо.
Как он будет работать? не обьясните?Синткс тут си или comp?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
http://git.linuxcnc.org/gitweb?p=linuxc ... 2d458ac5d7
вот файлы компонентов(там есть и not)
его действие:
если на вход подали 1 , то на выходе 0
и наоборот
вот файлы компонентов(там есть и not)
его действие:
если на вход подали 1 , то на выходе 0
и наоборот
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Как вот мне например на базе этого компонента произвести отладку в виде простой программки.UAVpilot писал(а):Отладить работу компонента сначала в виде простой программки и только потом делать из неё компонент.
В Geany можно?
Или в терменале?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
#include <stdio.h>;
main(){
int in , out;
in=0;
out = !in;
printf("out = %i",out);
}
если in равен нулю(как выше) - то выведет 1
если изменишь так:
in=1;
то очевидно -выведет 0
main(){
int in , out;
in=0;
out = !in;
printf("out = %i",out);
}
если in равен нулю(как выше) - то выведет 1
если изменишь так:
in=1;
то очевидно -выведет 0
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
по 'правильному' надо было прописать ввод с клавы, но сути это не мняет))
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Вот вроде работает.
Как я понял для компонента этот си файл не подойдет,надо будет переписовать под comp?
Опять могут быть ошибки,или есть возможность отлаживать в comp формате?
Как я понял для компонента этот си файл не подойдет,надо будет переписовать под comp?
Опять могут быть ошибки,или есть возможность отлаживать в comp формате?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
может я тебя не до конца понял,но это мы как раз взяли стандартный крмпонент емс not
и 'переделали' его в программку на си
чтоб переделать в .comp (как ты пишешь) нужно открыть по ссылке файл not.comp
и посмотреть код
этот код к твоему компоненту не имеет никакого отношения
и 'переделали' его в программку на си
чтоб переделать в .comp (как ты пишешь) нужно открыть по ссылке файл not.comp
и посмотреть код
этот код к твоему компоненту не имеет никакого отношения
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
#include <stdio.h>;
main(){
int i,k,s,in,old_in;
old_in=0;
int I[12]={7,3,11,12,14,4,16,11,18,1,18,13};
int A[3]={11,14,17};
for (k=0;k<12;k++){
s=A;
//if (old_in < s){
//printf("accel %d\n",s);
//printf ("old_in %d\n", old_in);
//}
if (I[k] >= 11 && I[k] < 14 ){
printf("accel 11\n" );
printf("pause0.5 \n" );
printf("input= %d\n",I[k]);
old_in = I[k];
}
else if (I[k] >= 14 && I[k] < 17 ){
printf("accel 14\n");
printf("pause0.6 \n" );
printf("input= %d\n",I[k]);
}
else if (I[k] >= 17 ){
printf("accel 17\n");
printf("pause0.6 \n" );
printf("input= %d\n",I[k]);
}
else {
printf ("not acceleration %d\n", I[k]);
}
//break;
printf ("---------------------------------------------\n");
}
}
вот немного титанического труда
кривенько,но работает только на увеличение ступени(то есть-только разгон)
стыпени тут задаются в массиве ,можно их менять
попробуй компильнуть
main(){
int i,k,s,in,old_in;
old_in=0;
int I[12]={7,3,11,12,14,4,16,11,18,1,18,13};
int A[3]={11,14,17};
for (k=0;k<12;k++){
s=A;
//if (old_in < s){
//printf("accel %d\n",s);
//printf ("old_in %d\n", old_in);
//}
if (I[k] >= 11 && I[k] < 14 ){
printf("accel 11\n" );
printf("pause0.5 \n" );
printf("input= %d\n",I[k]);
old_in = I[k];
}
else if (I[k] >= 14 && I[k] < 17 ){
printf("accel 14\n");
printf("pause0.6 \n" );
printf("input= %d\n",I[k]);
}
else if (I[k] >= 17 ){
printf("accel 17\n");
printf("pause0.6 \n" );
printf("input= %d\n",I[k]);
}
else {
printf ("not acceleration %d\n", I[k]);
}
//break;
printf ("---------------------------------------------\n");
}
}
вот немного титанического труда
стыпени тут задаются в массиве ,можно их менять
попробуй компильнуть
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Компильнул.Ошибок нет, предупреждения только.
Как ее проверить на работоспособность?
Как ее проверить на работоспособность?
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Это я понял.nkp писал(а):этот код к твоему компоненту не имеет никакого отношения
А как я буду делать компонент, с этого кода который на си
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
так ты же сам и проверил на работоспособность
смотри внимательно на вывод программы(то,что она тебе напечатала)
проанализируй
на торможения пока не обр внимания(это когда вводимая ступень меньше предыдущей)
потом вместо printf будут пины выхода,вместо мвссива - пин входа
надо дописать торможение , потом прицепим пины
смотри внимательно на вывод программы(то,что она тебе напечатала)
проанализируй
на торможения пока не обр внимания(это когда вводимая ступень меньше предыдущей)
потом вместо printf будут пины выхода,вместо мвссива - пин входа
надо дописать торможение , потом прицепим пины
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Я так понимаю раньше с программированием дела не имел?Валерий писал(а):Как вот мне например на базе этого компонента произвести отладку в виде простой программки.
В Geany можно?
Или в терменале?
Тяжело тебе будет, даже и не знаю что посоветовать... Может нанять кого?..
А сейчас всё это выглядит как попытка научиться водить самолёт только для того, чтобы слетать в отпуск к морю...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
Массив определил так char I[12]={7,3,11,12,14,4,16,11,18,1,18,13};
Вот как стало отрабатывать.
Вот как стало отрабатывать.
-
Валерий
- Мастер
- Сообщения: 241
- Зарегистрирован: 21 июл 2013, 21:01
- Репутация: 2
- Контактная информация:
Re: EMC2+1516Ф1 с эл.магн. муфтами коробки скоростей и подач
AVR програмировал,отлаживал,в WINDOWS .UAVpilot писал(а):Я так понимаю раньше с программированием дела не имел?
А в Linux я пока новичек.
Последний раз редактировалось Валерий 17 сен 2016, 22:26, всего редактировалось 1 раз.