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

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




Начать новую тему Ответить на тему  [ 96 сообщений ]  На страницу Назад  1, 2, 3, 4, 5 ... 7  Вперёд
Автор Сообщение
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 12:37 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
О как я могу!
Менял условия на противоположные, другие биты ставил, подсветка неизменна, т. е. там где линия зелёная - бит не работает, а где нет линии - бит стоит сработанный.
Кто знает что это за проблема - софта, а может контроллера (CJ2M) или это мне знак свыше что вообще это всё не моё (контроллеры, программеры)?
Да, контроллер всё тот же CJ2M, программер 9,61.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 13:46 
Не в сети

Регистрация: Вт фев 12, 2008 11:30
Сообщения: 324
Откуда: Cherepovets
Если программа в контроллере не отличается, то где-то ниже повторно записываются эти данные. Еще может быть то, что отображение на экране быстро меняющихся сигналов бывает не корректно.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 15:40 
Не в сети

Регистрация: Вт май 27, 2008 11:41
Сообщения: 559
У вас контроллер в каком режиме на момент "скриносессии" находился ?
При выполнении команды CMP иногда действительно в программере отображаются цепи за флагами условий не "совсем " как кажется нам правильно...,при том ,что условия выполняются верно согласно сравниваемым данным... :evil:
Попробуйте задать условия через входные команды сравнения,будет правильно отображать цепочки или нет...?
Может вам не нужно так часто использовать в каждой ступени сегмента входные условия для каждой команды если они стоят рядышком,... и проч. а так же часто вызывать команды TST & TSTN на входах условий тем более сравнивают они один и тот же бит,может проще сразу сделать флаги по ним , если конечно это будет проще при наличии сложных условий ,выполнения подпрограмм и проч. "ветвлений и разветвлений" :twisted:,ну и время выполнения проги можно будет за счет минимизации количества команд и их упрощения сократить... :oops:


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 17:00 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
I1 писал(а):
Если программа в контроллере не отличается, то где-то ниже повторно записываются эти данные. ...

Спасибо за совет, проверил, данные в этих словах не перезаписываются, но каждое слово по отдельности сравнивается с константой такой же командой, может имеет смысл её поменять. Хотя таких команд сравнения у меня много в программе, и после каждой отображения флагов сравнения и битов правильное, но те данные больше нигде не сравниваются.
DEFO писал(а):
У вас контроллер в каком режиме на момент "скриносессии" находился ?
В "мониторе", я редактирую в режиме онлайн, пытаясь манипулировать условием и битами.
DEFO писал(а):

Попробуйте задать условия через входные команды сравнения,будет правильно отображать цепочки или нет...?
Это мы не проходили, это нам не задавали. Я не знаю как это сделать?
DEFO писал(а):
Может вам не нужно так часто использовать в каждой ступени сегмента входные условия для каждой команды если они стоят рядышком,... и проч. а так же часто вызывать команды TST & TSTN на входах условий тем более сравнивают они один и тот же бит,может проще сразу сделать флаги...
Спасибо за подсказку, надо взять на вооружение. Я кусками проверяю программу на контроллере, по ходу работы условия будут добавляться, пока это для условий срабатывания команд выполнения. Если контроллеру легче (быстрее) решать задачу с битами, то надо бы заменить эти команды сравнения на биты. Вроде в команде тоже проверяется один бит, есть разница? Вообще если контроллер со временем разозлится и нагревшись плюнет в кого то конденсатором, то надо бы и цепочку со сравнением поправить.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 17:25 
Не в сети

Регистрация: Вт май 27, 2008 11:41
Сообщения: 559
Варяг писал(а):
DEFO писал(а):

Попробуйте задать условия через входные команды сравнения,будет правильно отображать цепочки или нет...?
Это мы не проходили, это нам не задавали. Я не знаю как это сделать?
DEFO писал(а):
Может вам не нужно так часто использовать в каждой ступени сегмента входные условия для каждой команды если они стоят рядышком,... и проч. а так же часто вызывать команды TST & TSTN на входах условий тем более сравнивают они один и тот же бит,может проще сразу сделать флаги...
Спасибо за подсказку, надо взять на вооружение. Я кусками проверяю программу на контроллере, по ходу работы условия будут добавляться, пока это для условий срабатывания команд выполнения. Если контроллеру легче (быстрее) решать задачу с битами, то надо бы заменить эти команды сравнения на биты. Вроде в команде тоже проверяется один бит, есть разница? Вообще если контроллер со временем разозлится и нагревшись плюнет в кого то конденсатором, то надо бы и цепочку со сравнением поправить.


На примере выложены водные условия сравнения,дело конечно ваше..
Где то в мануале для CJ2 есть таблица выполнения по времени и количеству циклов опроса для всех команд и условий,можете интереса ради найти и сравнить время выполнения CMP,входных условий сравнения ,для бита-слова и проч...,это будет нагляднее для понимания … и не придется оттирать конденсаторы и проч.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Вт фев 09, 2021 20:54 
Не в сети

Регистрация: Вт фев 12, 2008 11:30
Сообщения: 324
Откуда: Cherepovets
Ваша задача решалась как-то так. Это тоже был первый опыт, так что выглядит не стройно.
PS
Почему-то я решил, что тема продолжается про привод, положение которого необходимо запоминать.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Отредактировал I1. Дата редактирования: Пт фев 26, 2021 09:12.

В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Ср фев 10, 2021 09:55 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
DEFO писал(а):
На примере выложены водные условия сравнения,дело конечно ваше..

Да, с таким сравнением биты отображаются правильно. Интересно ведь так используется две команды сравнения, а CMP только одна, неужели по времени они быстрее выполняться? Не знал, но поверю опытным людям. Спасибо за помощь!
I1 писал(а):
Ваша задача решалась как-то так. Это тоже был первый опыт, так что выглядит не стройно.
Спасибо за пример и помощь!


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Ср фев 10, 2021 10:30 
Не в сети

Регистрация: Вт май 27, 2008 11:41
Сообщения: 559
Варяг писал(а):
Да, с таким сравнением биты отображаются правильно. Интересно ведь так используется две команды сравнения, а CMP только одна, неужели по времени они быстрее выполняться?

Скорее всего не быстрее но они по моему мнению более наглядно отображают алгоритм при написании и редактировании...


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Сб фев 20, 2021 16:53 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
Подскажите пожалуйста какой пример из двух будет работать правильно? А может ни один не будет работать и нужно добавлять ещё условия? Весь вопрос в отработке "по фронту" триггера H0.13. Где правильней поставить условие/контакт отработки триггера H0.13 по фронту, до или после контакта постоянной его работы? Хочу чтоб только первое его включение миновало условие "12" и включало триггер "50", а в последующей работе цепи условие запущен ли триггер H0.13 проверялось вместе с условием "12".


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Сб фев 20, 2021 20:56 
Не в сети

Регистрация: Вт фев 12, 2008 11:30
Сообщения: 324
Откуда: Cherepovets
От перестановки контактов в цепочке ничего не изменится.
Фронт соберет условие на один скан программы, для этого нет необходимости последовательно этот же н.о. контакт включать в условие.
У функции KEEP приоритет на сброс - обратите внимание. Можно использовать @KEEP (триггер включится по фронту всей цепочки условия на входе)
У контроллера есть достаточно большая область памяти W к которой можно обращаться как к словам, так и побитно. Например, W100 - слово, а W100.01 - первый бит в слове W100.
Использование функции TEST выглядит тяжеловато в данном применении


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Пн фев 22, 2021 05:43 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
Спасибо, так будет правильней?


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Пн фев 22, 2021 12:24 
Не в сети

Регистрация: Вт фев 12, 2008 11:30
Сообщения: 324
Откуда: Cherepovets
Представления о правильности у каждого свои. Правильно - это когда работает так как задумано и не очень важно сколько там всего написано. Вот только если будете потом перечитывать свой собственный код, вспомните ли что это?
Чем нагляднее и проще - тем понятнее и это будет правильно.
Кому - то нравится все условия включения и отключения триггера записывать в одной цепочке, кто-то придерживается своих правил, выделяя промежуточные состояния для диагностических операций, логирования, взаимодействия с оператором (человеком).
На данном этапе Вы освоили функцию KEEP. Это хороший результат для самостоятельного изучения. Попробуйте теперь заменить эту функцию релейным аналогом ее - "подхватом". Это когда бит, который Вы на выходе включаете сам себя удерживает пока не сбросится условием отключения. Поясню по-другому: условие включения подхватывается параллельно битом, который формируется на выходе цепочки. Условие отключения пишется последовательно и инверсно.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Ср фев 24, 2021 20:49 
Не в сети

Регистрация: Пт фев 08, 2019 06:46
Сообщения: 106
Откуда: кишлак около гор
I1 писал(а):
Представления о правильности у каждого свои.

Согласен. Для меня правильно это когда контроллер обрабатывает программу как можно быстрее. А то я уже нашагал за 3500, и это только 3/4 всей программы, а контроллер должен решать задачу по одновременному перемещению, да ещё через модули удалённого ввода/вывода, от сюда и условие быстрой обработки программы. Нужно будет разделять прогу на подпрограммы. По Вашим советам уже задумался заменить команды SETB, TST на биты области W т. к. в моей программе эти команды составляют основную часть. Есть вопрос - чем область W отличается от D, наверно она не сохраняет данные при отключении питания? И биты там сами удерживаются в "1" после снятия условия их включения? В старых контроллерах этой области не было, я с ней не работал.
I1 писал(а):
Попробуйте теперь заменить эту функцию релейным аналогом ее - "подхватом".
Спасибо за образование, это я знаю


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Ср фев 24, 2021 23:27 
Не в сети
Аватара пользователя

Регистрация: Сб сен 30, 2006 14:07
Сообщения: 763
Откуда: Москва
Сохраняются при отключении питания только D (на батарейке) и H (всегда, флеш память).
"И биты там сами удерживаются в "1" после снятия условия их включения? "
Если SET, то да, пока не сбросить, будет "1".


В начало
 Профиль  
 
 Заголовок сообщения: Re: Примеры задач cx-programmer
СообщениеДобавлено: Чт фев 25, 2021 19:30 
Не в сети

Регистрация: Вт фев 12, 2008 11:30
Сообщения: 324
Откуда: Cherepovets
Варяг писал(а):
I1 писал(а):
Попробуйте теперь заменить эту функцию релейным аналогом ее - "подхватом".
Спасибо за образование, это я знаю

А как будет выглядеть замена KEEP в Вашем примере?
Следующие для изучения - пара функций "SET" - "RESET" Или Вам наскучило?
Нет, это - шутка. Я больше не преподаю и уроки не задаю. :)

Безусловно, писать оптимальный для выполнения код важно. А труд программиста при написании программы, наладке и обслуживании, как правило, перекрывает экономию на "железе". И важнее становится "структурность" программы, подчинение каким-то известным правилам, которых придерживаются коллеги. В погоне за супер скоростью можно наделать в программе прерываний, прыжков, подпрограмм. Все это стукнет по "читаемости" кода. Это полезно, но сильно увлекаться такими "хитростями" не нужно.
Выделять в отдельную программу, которая вызывается по событию стоит достаточно большую часть кода, выполнение которого необходимо не часто. Выделять в подпрограмму или функциональный блок оправдано часть кода, который очень часто встречается в программе. (Слова "большой", "часто" и "редко" - понятия условные).
Хранить в энергонезависимой памяти состояния механизма? На сколько оправданным можно считать такое решение? Контроллер не должен выключаться даже для целей безопасности. Исключения тоже есть. Отключением питания можно пользоваться для возврата в "исходное состояние". Можно копировать ответственные настройки в энергонезависимую память и извлекать их при запуске программы на первый скан. Для этого используются "сервисные" биты. Для разных серий контроллера они разные.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 96 сообщений ]  На страницу Назад  1, 2, 3, 4, 5 ... 7  Вперёд

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


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

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


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

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