Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 22:16

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 10 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Макросы для панели серии NB
СообщениеДобавлено: Пт сен 06, 2013 12:28 
Не в сети

Регистрация: Пт авг 09, 2013 08:20
Сообщения: 36
И снова возникает вопрос, недостаточно ясно описанный в документации.

Имеем:
HMI NB7W-TW01B
PLC CP1H XA-40DT-D

С панелькой работаем в NB Designer. Для панельки можно писать некоторые макросы. Возможностей, правда, не так много:
http://www.myomron.com/index.php?action=kb&article=1544

В Programming Manual написано ещё кое-что, но в целом всё равно остаётся вопрос:
А как, собственно, макросом считать область данных из ПЛК (и записать, собственно)? По идее, можно не обратить внимание на то, что функции называются "Local", и воспользоваться ReadLocal + WriteLocal. Например, так:

Код:
#define RESULT_HEAD_LEN         14

int MacroEntry()
{
   unsigned short head[RESULT_HEAD_LEN];
   int res = 0;

        res = ReadLocal("D",100,RESULT_HEAD_LEN,(void*)head,0);
   WriteLocal("LW",100,1,(void*)res,0);

   res = WriteLocal("FRW",100,RESULT_HEAD_LEN,(void*)head,0);
   WriteLocal("LW",101,1,(void*)res,0);

   return 0;
}


Т.е. я хочу взять массивчик из области D ПЛК, и закинуть его в просторнейшую флешку на HMI. Результат операции копирования вывожу в локальные регистры HMI. Что при этом происходит: в указанных областях FRW появляется что-то, но абсолютно не то, что было в копируемой области D, в LW100 и 101 остаются нули, а HMI впадает в ступор, от которого спасает только перезагрузка. Что я не так делаю?

Макрос инициирую установкой бита LB0 в единицу. К слову, не понял, зачем в примерах не только инициируют макрос записью бита/слова, но и потом тоже самое прописывают в "уведомлении"?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Пт сен 06, 2013 14:22 
Не в сети

Регистрация: Пт окт 14, 2011 17:04
Сообщения: 726
на сколько я понял, нужно скопировать n-слов с PLC, записать в область памяти HMI.
к примеру 5 слов.
short buf[5]={0};
ReadLocal("D",100,5,(void*)buf,0); //считали с PLC
WriteLocal("FRW",100,5,(void*)buf,0); // записали в HMI

можно еще добавить на экран что в FRW
ReadLocal("FRW",100,5,(void*)buf,0);
WriteLocal("LW",100,5,(void*)buf,0);

на экране вывели пять полей вывода чисел =)


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Пн сен 09, 2013 05:20 
Не в сети

Регистрация: Пт авг 09, 2013 08:20
Сообщения: 36
Так я то же самое и писал :)
С подвисанием, правда, сейчас быстро разобрался - это в пятницу на уставшую голову забыл поставить '&' перед переменной результата.
В общем, теперь вывожу результат операций ReadLocal и WriteLocal и вижу, что чтение из ПЛК проваливается (код возврата 0). И из области D, и из области W.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Ср апр 15, 2015 11:06 
Не в сети

Регистрация: Чт окт 23, 2014 11:28
Сообщения: 11
если я правильно понял мануал, то эти функции используются для чтения памяти панели. А контроллер читать ими нельзя.

Вопрос: а как считывать/записывать значения подключенной флешки?
Нужно работать с массивом. Сначала в процессе работы по мере поступления записывать значения, а затем их обрабатывать, сортировать по дате записи и считать "итого" за период, например...Как бы это сделать можно покрасивее?
Может примеры есть где какие.. :roll:
Спасибо заранее.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Чт авг 25, 2016 09:16 
Не в сети

Регистрация: Пт сен 02, 2011 12:05
Сообщения: 35
Коллеги, есть ли у кого примеры с использованием функций ReadLocal, WriteLocal для записи в инвертор. Если с данными панели RW, LW все получается, с данными внешних устройств разобраться не удалось. Пересылать данные функцией необходимо для того чтобы регистрировать наличие пересылки в инвертор возвращением результата выполнения функции. Ну или какой-либо другой вариант регистрации корректности посылки предложите. Системное сообщение панели о некорректности связи не совсем подходит, ни зарегистрировать как аварию, ни завязать логику работы от него нельзя. Был бы очень благодарен за помощь, так как по NB макросам информации крайне мало. Здесь уже вроде писалось что это прямой аналог «винтека», может кто подсказать есть ли там аналогичные примеры на макросы.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Пт авг 26, 2016 21:15 
Не в сети

Регистрация: Пт янв 30, 2009 21:25
Сообщения: 518
А что будет если дословно перевести на русский язык?
ReadLocal, WriteLocal (Read Local, Write Local)

_________________
А нам, все равно, и ровно.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Пн сен 12, 2016 12:34 
Не в сети

Регистрация: Пт сен 02, 2011 12:05
Сообщения: 35
Ярослав писал(а):
А что будет если дословно перевести на русский язык?
ReadLocal, WriteLocal (Read Local, Write Local)

Ну в том то и дело что функция нормально себе пишет и в данные контроллера а вот в данные инвертора писать отказывается, вот такой он Local. Я в принципе думал может кто на сях разобрался что там написать нужно. Сам пробовал функцию написать, но как то не очень прокатило, если просто из макроса в переменную закрепленную за адресом в инверторе пишешь равно адресу из панели или из D контролера то записывает нормально. Стоит это все обернуть в функцию, работать прекращает. В общем мой скил примерно равен 0), надеялся что тут кто-то копался поглубже.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Пн сен 12, 2016 23:08 
Не в сети

Регистрация: Пт янв 30, 2009 21:25
Сообщения: 518
Дык частотники вроде по Modbus надо вязать. Причем тут макросы?

_________________
А нам, все равно, и ровно.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Вт сен 13, 2016 10:40 
Не в сети

Регистрация: Пт сен 02, 2011 12:05
Сообщения: 35
Ну на борту панели встроенный 485, в пакете поддержка контролера типа Modbus RTU, что есть ни что иное как инвертор. в макросе можно обозначить переменную этого контроллера и использовать ее, очень даже за просто. Вопрос в том как обернуть это все в функции макро-языка. Да и вообще не актуален, он теперь. Просто в мануале заявлено что макроязык вроде как для упрощения и автоматизации процесса...


В начало
 Профиль  
 
 Заголовок сообщения: Re: Макросы для панели серии NB
СообщениеДобавлено: Сб фев 11, 2017 12:22 
Не в сети

Регистрация: Пт янв 30, 2009 21:25
Сообщения: 518
Появились вопросы - может кто знает.

Макросы с памятью LW работают - все нормально
ReadLocal("LW", 130, 8, (void*)buf, 0);
WriteLocal("LW", 165,8, (void*)buf, 0);


Макросы с памятью RW НЕ РАБОТАЮТ - проблема
ReadLocal("RW", 130, 8, (void*)buf, 0);
WriteLocal("RW", 165, 8, (void*)buf, 0);

причем в симуляторе кратковременно видно проскакивание необходимой информации в отображаемом поле - но потом она опять перетирается тем что там было.

требуется работать с памятью RW.
Документация вроде никаких ограничений по этому поводу не определяет.

На терминале не пробовал.

_________________
А нам, все равно, и ровно.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 10 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3