а где тогда взять десятичные, если есть только адреса регистров вида 0х00 и адреса бит?
Вид для печати
а где тогда взять десятичные, если есть только адреса регистров вида 0х00 и адреса бит?
А как его тогда понимать?... я считал что шестнадцатиричное представление выглядит например так - 2F или 1A или 23...
удивительно, но до числа 10 представление в десятичной и шестнадцатеричной системах будут одинаковыми, а чтоб отличить 23 от 23 надо бы уже знать систему счисления. в области передачи по сети (в КДС) почему-то шестнадцатеричная система обозначается как 0x... а в областях объявления переменных как 16#...
понимать так, что это нулевой регистр на устройстве.
я имел в виду как 0x04 (к примеру) представить в виде "1A"?
0x04 итак шестнадцатеричное представление, куда уж шестнадцатеричнее.
почитайте тут про перевод систем счисления
честно - поставит, потому что я всегда считал что у 16 сс одна разновидность, а оказывается целая куча(((
представить надо в лектус опц сервере.. Иначе не подключишь переменную к нему(((
ещё прочитал что в контроллере вроде адресное пространство единое, то есть по адресу 0 модбас переменной может и не быть, там скорее всего совершенно другое записано. Так как же найти адреса именно модбас переменных?
Здравствуйте, вопрос есть по включению модема пм01, никак не могу найти библиотеку, где будет функциональный блок, который работает на примём и передачу **** он в документации описан, а на деле его нет, где достать можно?
Здравствуйте! Столкнулся с проблемой пишу визуализацию в CoDeSys v2 и все бы ни чего вот только не получается из формы присвоить отрицательное значение в регистр размерностью word. Принимает только положительные числа! Я бы может быть сильно и не заморачивался , но панель 320 делает это без проблем и отображение на панели -20, на визуализации 65516. Может кто подскажет ? Ну не создаются регистры типа INT - только float!!!! А это несколько жирно и неудобно при условии , что на панели все ОК.Подскажите решение.! Пожалуйста....
может проще объявить эти переменные глобальными (не в конфигурации)?
var global
X1 at %qw8.7.0: int;
...
end var
А если можно поподробнее , я все таки чайник - я смогу обратиться к ним с панели потом(ИП320)?
Что то не выходит, или две переменных одинаковых или он этот регистр qw8.7.0 всеравно дублирует если я удаляю переменную - то есть сдвигает . При этом выдает интересное предупреждение , что word не соответствует int и поэтому будет использоваться int. Пока не понимаю.
Здравствуйте.
Возможно ли загрузить в ПЛК загрузочный проект НЕ из среды CoDeSys?
Как установить связь с ПЛК для загрузки в него загрузочного проекта .PRG?
Если загружать загрузочный проект из среды CoDeSys, то необходимо онлайн подключение. Как быть, если исходных текстов нет? Пункт Запись файла в ПЛК неактивен.
Нет, не возможно.
Тот файл, который Вы создаете в CoDeSys в контроллер не записывается. CoDeSys при компиляции записывает нужный файл.
Добрый день. У меня не получилось указать элемент массива в конфигураторе ПЛК в качестве выходной переменной. Можно-ли это сделать???
Подскажите как вывести на экран ПЛК63 таймер, т.е. надо по событию Х запустить таймер TP и вывести его на экран ПЛК63, желательно в формате 00м:00с???????:confused:
Там же есть описание шаблонов времени
Serban, Eсли кратко, то можно так
1.Береш с выхода ET своего таймера, время ,оно будет в ms
2. делаешь из него часа и минуты (делим делим)
3. выводим данные на экран, примерно так
ShowDint(0, 9, 0, '%02u:', t_m); - минуты
ShowDint(0, 12, 0, '%02u', t_s); - секунды
Смотрите пример.
Выложил в вашей ветке
http://www.owen.ru/forum/showthread....8399#post68399
Уже не знаю , что делать , ну не хочет контроллер сохранять переменные в памяти после отключения электроэнергии. Системные часы не слетают!!!!!
Программа написана для ГВС и ИТП, после появления электричества должна помнить старое состояние обязательно!!!!
Пример переменных которые слетают - смысл можно понять из программы - прилогается.
AUTO_ON_OTOP AT %QW8.29.0: WORD;
TEMP_OTKL_OTOP AT %QW8.30.0: WORD;
SHUNT_P_OTOP AT %QW8.35.0: WORD;
SHUNT_S_OTOP AT %QW8.36.0: WORD;
AUTO_SMENA_DAY AT %QW8.37.0: WORD;
AUTO_SMENA_NAS_OTOP AT %QW8.42.0: WORD;
PRIORITET_NAS_OTOP AT %QW8.43.0: WORD;
REGIM_AUTO AT %QW8.45.0: WORD;
Может кто новым взглядом поможет чайнику - увидеть очевидное!
К сожалению до Овена дозвониться не получается......
Тут есть 2 варианта.
Делаете ли Вы команду Создание загрузочного проекта?
Тогда остается второй вариант. Менее приятный.
Записываются ли в Retain переменные, которые не относятся к обмену по ModBus?
Здравствуйте! Имеется небольшой вопрос - в блоке получения риального времени, запиленного при помощи библиотеки SysLibTime, некий счетчик считает секунды с начала суток (т.е. каждый день заново), доходит до 65535 секунд (в это время на часах 18:12:15) и обнуляется, соответственно отваливается сам техпроцесс. Как можно с этим бороться?
Использовать значение времени из других переменных данной библиотеки
Это да, сейчас считаются минуты, а не секунды, но встает следующий вопрос - привязка времени старта/стопа сделана в секундах (т.е. в конфигурации забито время старта, например, 7:45:01, и оно переводится в секунды), соответственно получается что числовое значение текущего времени (465 минут с момента старта счетчика) не равно числовому значению времени старта (27901 секунда с момента стрта счетчика)
Ни одна переменная из VAR_GLOBAL RETAIN не сохраняется и не знаю соответственно почему.
Переменная vrema_zapuscov_dnem - массив ни какого отношения к ModBus не имеет - тоже слетает !
Но у меня есть какое то подспутное чувство , что это началось после того как я перенес туда данные из ModBus(slave)[Var]. Очень мне надо было вводить с визуализации в контроллер отрицательные числа в переменную word. Вот теперь незнаю в чем косяк , а самое главное , что ошибок нет!
пример программы был выложен в 284 сообщении там можно посмотреть все и вся!!!!
Я имею ввиду что где-то в программе есть "некий пункт", который производит пересчет времени, заданного в конфигурации (7:45:01) в секунды (27901), вот этот "некий пункт" я никак не могу задетектить.
Спасибо за совет, но для меня это не вариант!
Переменные я указал в предыдущем сообщении только кусочек - для примера их там гораздо больше и все они слетают.
Еще раз повторюсь у меня проблема с RETAIN !!!!! Отказываться от красиво и логично написанной программы не хочу ! Ввод осуществляется с ИП320 и Визуализации - в перспективе перенос в МАСТЕРСКАДА.
Мой вопрос почему слетают данные.
Скорее всего вопрос именно в обмене с ИП320.
Так получилось, что конфигурация, а значит и сетевой обмен начинаются раньше, чем загружается программа.
Соответственно в этот момент переменные, обменивающиеся с панелью могут получать с панели значение 0.
Как лечится:
Необходимо создать группу промежуточных переменных Retain.
Добавить модуль статистика, и сделать дополнительную подпрограмму:
Если подали питание - присвоить переменным для обмена с панелью значения специально созданных промежуточных переменных
if r_trig(power_iz_statistica) then
perem1_iz_ModBus_Slave:= prom1_for_retain;
...
perem_N_iz_ModBus_Slave:= prom_N_for_retain;
end_if;
Если пропадает питание - значение переменных обмена с панелью записать в промежуточные ретэйн..
if f_trig(power_iz_statistica) then
prom1_for_retain:=perem1_iz_ModBus_Slave;
...
prom_N_for_retain:=perem_N_iz_ModBus_Slave;
end_if;