Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: ПЛК63 время

  1. #11

    По умолчанию

    Ну, ну, господа... Зачем же так. Оба хорошие спецы, грамотные люди, и из за мелочей вышли "к барьеру"... Зачем? Если очень хочется "попикироваться" - просьба в курилку.

    По существу:
    1. CoDeSys действительно немецкий продукт это раз. И есть некоторые подозрения, что родители CoDeSys имели отношение к Step 7.
    Степ, как и система для B@R - это не система для программирования, а программный комплекс, включающий в себя 100 утилит для работы "со всем". Удобно? Наверное. Компания ОВЕН до такого уровня пока не дошла, ну так мы и контроллеры делаем 5 лет, а не 50. А CoDeSys - в чистом виде система программирования. Не более того.
    2. Контроллеры ОВЕН - отдельная тема для разговора. Мы всегда открыты к диалогу. Единственно прошу - не мешать все в кучу.
    3. Залить исходный код проекта в ПЛК63 нельзя - недостаточно памяти для этого в контроллере. Как в прочем и логи какие бы то ни было вести. Как и вычисления сложные и массивы большие не рекомендую. Контроллер сугубо для небольших локальных задач, о чем мы честно везде и говорим. Зато скомпилированный код при нажатии кнопки старт записывается в контроллер автоматически (кнопка создание загрузочного проекта не активна, если Вы заметили).
    4. C временем в контроллере все работает. Как я и писал - присылайте свой проект и что не работает - обязательно разберемся. Ну или выкладывайте здесь, даже быстрее получится.
    5. Рекомендую сменить версию прошивки на 2.0х
    Последний раз редактировалось Николаев Андрей; 25.03.2011 в 12:08.

  2. #12

    По умолчанию

    1. Ну в принципе я с этим не спорил.
    Но система конечно удобна, хоть от "классичиского" кодесис внешне почти ничего не осталось... Дальше конечно все зависит от программера.
    2. Ну я как бы не мешал... Просто чтобы не открывать новую тему, просто спросил про экраны и кнопочки. Почему вообще спросил? Не из-за того что про меня написал capzap , а потому что в документации по ЖКИ на стр. 16:
    (*Перед между режимами осуществляется не мгновенно, может потребовать до 0.5сек) и возможен не из всех режимов. Для гарантированного перехода может потребоваться многократный вызов функции SWITCH_TO_SINGLE_MODE*)
    Вот подобные мелочи я имел ввиду... Как-то не хочется чтобы сломали панель, пытаясь переключить что-то... А если есть какие-то задержки, то люди автоматически начинают нажимать сильнее на порядок...
    3. Теперь с исходником в плк63 все понятно. Причем утверждение capzap про то что это "забывчивость" как-то начинает вызывать сомнения...
    Лог ведется просто в массив, заданный моей структурой, с интервалом в 1 час (ну или сколько задашь в настройках). Причем массив даже не ретайн. Простой одномерный массив с размером 1..100, при достижении конца, автоматически начинает писать с начала. Если не вырубят питание, то нужную инфу я просмотреть успею. Если вырубят - не мои проблемы. Я предупредил если что.
    Хотел сделать запись в файл, но прочитав доку (да-да - я иногда документацию все же читаю) "Ограничения ПЛК63.pdf", отказался от этой затеи.
    Или я опять что-то делаю не так?
    4. Сделал один в один как в примере. Скоро пойду тестировать.
    5. Сменим. Потом.

    ЗЫ Чей-то пример, вставленный практически один в один (добавил задержку чтобы не гонять каждый цикл), заработал...
    Код:
    VAR
    	HOUR:UINT;				(* Часы *)
    	MINUTE:UINT;			(* Минуты *)
    	SECOND:UINT;			(* Секунды *)
    	TIME_NOW:TIME;			(* Текущее время *)
    
    	DTNow: SystemTimeDate;
    	STNow: SysTime64;
    	GetCurrentTime: CurTimeEx;
    
    	TCLOCK: TON;		(* Таймер обновления текущего времени *)
    END_VAR
    
    (* Обновляем раз в 500 мс - некуда спешить *)
    TCLOCK (IN:=NOT TCLOCK.Q, PT := T#500ms);
    IF TCLOCK.Q THEN
    
    (* Текущее время *)
    DTNow.Day :=0;
    DTNow.DayOfWeek :=0;
    DTNow.dwHighMsec :=0;
    DTNow.dwLowMSecs :=0;
    DTNow.Milliseconds :=0;
    DTNow.Minute :=0;
    DTNow.Second :=0;
    DTNow.Hour :=0;
    DTNow.Year :=0;
    DTNow.Month :=0;
    STNow.ulHigh :=0;
    STNow.ulLow :=0;
    GetCurrentTime(SystemTime:=STNow , TimeDate:=DTNow );
    HOUR := DTNow.Hour;
    MINUTE := DTNow.Minute;
    SECOND := DTNow.Second;
    TIME_NOW := UINT_TO_TIME((HOUR*3600 + MINUTE*60 + SECOND) * 1000);
    
    END_IF
    Всем спасибо!
    Последний раз редактировалось JIexa21; 25.03.2011 в 14:19.

  3. #13
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,257

    По умолчанию

    Цитата Сообщение от JIexa21 Посмотреть сообщение
    Чувствую что скоро выработаю стойкое отвращение к овенам.
    ну вот стоило Вас только поддеть и дело сдвинулось с мертвой точки, успехов в делах

  4. #14

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Сделали б WorkInd=1 и не морочились бы.
    Не вижу такой функции в библиотеках.

    А чего не ретайн? В него можно пару сотен записей сделать.
    Структура:
    Код:
    TYPE LOG_STRUCT:
    STRUCT
    	P_CICL:UINT;		(* Номер цикла *)
    	P_TIME:TIME; 		(* Текущее время *)
    	P_TMP_1:REAL;	(* Температура в трубе *)
    	P_TMP_2:REAL;	(* Температура в левой камере *)
    	P_TMP_3:REAL;	(* Температура в правой камере *)
    END_STRUCT
    END_TYPE
    Вряд ли 100 записей влезут в память...

    Могли б записать когда выключилось, и когда включилось
    А вот это можно и в ретайн, но нужно ли...
    Все записи делаются в журнал. Им даже логи не нужны - они нужны мне.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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