Либо таргет не тот, либо выходы неверно запитаны.
Вид для печати
Не кидайте помидорами пожалуйста. Связка плк+пм01 на объекте и пм-01+лектус OPC на диспетчерском пункте. Подскажите пожалуйста, как в codesys посмотреть или вычислить адрес заданной переменной, чтобы внести адрес в лектус для опроса? возможна ли передача переменных типа РЕАЛ по модбас ASCII через CSD из плк в лектус, и как это осуществить? ткните носом пожалуйста!
Добрый день.
Если интерфейс ПЛК настроен на Slave, то адресация начинается с 0.
Например, если добавили 2 переменные "2 byte", то первая переменная будет иметь 0 регистр, а вторая 1 регистр.
Или если добавили 2 переменные типа "float", то первая - 0,1 регистр, вторая - 2,3.
При добавлении переменных учитывайте выравнивание переменных.
Более подробно про выравнивание переменных при размещении в области памяти можно в РП на стр.46: http://www.kipshop.ru/CoDeSys/steps/...figuration.pdf
Если интерфейс ПЛК - мастер, то регистры прописываются вручную в параметрах модуля переменной.
Передача типа Реал возможна. Пример настройки CSD соединения можно найти тут: http://www.owen.ru/catalog/gsm_gprs_..._pm01/29188586
"Связь с ОВЕН ПЛК через модем ПМ01"
Будет так же с 0.Цитата:
Спасибо, есть еще вопрос: Если я допустим добавля после слейва еще одно слейв устройство, как тогда адресация во втором слейв устройстве будет? так же с 0 или же учитывая все ранее заданные переменные в предыдущих устройствах?
Здравствуйте. Такой вот вопрос:
Организовал обмен данными между панелью и контроллером, через библиотеку Modbus.lib. Все работает нормально до отключения питания, после появления питания все данные передаваемые с панели обнуляются (настроечные параметры). Решил проблему, поместив массив передаваемых данных в VAR GLOBAL RETAIN. Насколько такое решение правильное и есть ли альтернативное.
Раньше все делал, через конфигурацию ПЛК. Судя по справке КДС записываются параметры в энергонезависимую память только при сбросе и потери питания, а на форуме где то попадалось что по мере изменения параметров. Где правда?
У Вас панель мастер?
А тогда где хранились настроенные параметры?
При выключении ПЛК.
Доброго времени суток!!
Уважаемые "форумчане" подскажите, как записать в файл переменную типа string размером больше чем 255 ??? дело в том, что пришлось клеить колбасу из переменных в файл формата .CSV для 1С, а как записать такую длину ума не приложу!!! ПЛК 160 КМ
Заранее благодарен!!!
Не понял Вопроса.
открываю файл на запись >пишу в него 1 строку в которой длина около 400 символов > закрываю файл
вот так выглядит:
PROGRAM Arhiv_wrk
VAR
File_name: STRING(21); (*имя архива*)
size:UINT; (*размер архива*)
Saved: BOOL; (*сохранить архив в файл*)
StatusOfFile: INT:=100; (*инициализация ФБ*)
f: DWORD; (*дескриптор файла*)
statusf: DWORD;
pt: POINTER TO DWORD; (*указатель на архив*)
R_TRIG2: R_TRIG;
f_err: BOOL;
str_new_fail:STRING;
Rtrig_pwr: R_TRIG;
Ftrig_pwr: F_TRIG;
new_fail: BOOL;
END_VAR
В несколько заходов пишите и все.
Ну либо считать файл, добавить строку и записать по новой, либо взять функцию позиции курсора и писать в конце файла
Доброго времени уважаемые форумчане!
Есть такой проект на CFC
В нём есть:
En_function: BOOL; - разрешение на включение функции
counter: WORD; - счётчик от энкодера
volume_start: WORD; - значение начального движения
sensor: BOOL; - датчик крайнего положения механизма
Err: BOOL; - значение возможной ошибки (запрет на выполнение действия)
TIME_reg: WORD; - регистр времени на последнее действие
Trig_start: F_TRIG; - тригер переключения действия
slow: BOOL; - медленное движение
Delay100ms: TOF; - костыль что бы программа не прерывалась раньше времени
Permission: BOOL; - разрешение на выход из программы
speed: BOOL; - движение на макс. скорости
start: BOOL; - начало движения
timer: TP; - таймер последнего движения
last_ACT: BOOL; - последнее движение
function_end: BOOL; - действие закончено.
Проблема в том что выходные переменные:
start, speed и slow - включаются на реальном контроллере с задержкой.
То есть - механизм движется по выходу старт, дошёл до своего значения энкодера, остановился, включилось движение по speed... и т.д.
А надо что бы он не успевал остановиться и продолжал двигаться уже по speed
Что я сделал не так и как добиться того что бы механизм двигался плавно (сейчас идёт рывками между переключениями)
ЗЫ. Это только часть программы. Вся программа более 300 блоков + 230 блоков раз в 240мсек (вывод инфы на дисплей)
ЗЫ.ЗЫ пробовал ставить задержку до 60 мсек (на отключение выходных переменных старт и т.д. - не помогло.) Более 60 не ставил. И так бред какой то. Надо что то нормальное придумать.
У меня на ПЧ дельта подобная ситуация была!!!
Пришлось время остановки (торможения) выставить в 0 и отнять от позиции остановки по импульсам от энкодера импульсов 90 (инерция большая) и включать повышенную 2ю скорость. А время разгона увеличил и получился плавный ход и переключение!!
Уважаемые форумчане ! Не могли бы вы дать несколько советов по повышению быстродействия модулей ввода - вывода .
Есть дискретный импульсный сигнал 1сек да , 1сек нет . Программа пропускает сигналы . Воспринимает примерно - 4сек да 4сек нет . Была скорость 9600 , поднял до 115200 - изменений не увидел . Скорость вернул на 9600 , перенастроил в конфигурации плк - параметры модуля с дискретными выходами на запись по изменению переменной - стало лучше ( 2 сек на 2сек ) , но не устраивает .
В схеме плк100 , МВ110-224.16ДН , МВ110-24.32ДН , 2 МУ110-224.16Р , МУ110-24.32Р , МВ110-224.8А , МЭ110-220.3М . Аналоговые модули время опроса 1000мс .
Делай опрос через библиотеки.
не в ту тему пишите, и где проект...Цитата:
Добрый день, у меня вопрос, на СПК207
Объясните пожалуйста, цель задачи состоит в том, чтобы при подаче сигнала на дискретный вход плк 150 загорался соответствующий индикатор ип320.
Одна из причин, по которой выбирают оборудование ОВЕН: наличие большого количества доступно изложенных инструкций и примеров программ на все случаи жизни.
Ближе всего мне кажется Пример передачи измеренной величины из трм101 по протоколу ОВЕН на ИП320 (Master) по протоколу Modbus посредством ПЛК1хх.
Только в Вашем случае в модуль ModBus (Slave) в ПЛК нужно добавить модуль 8 bits и использовать в нем по одному биту для каждого индикатора.
Можно найти также множество обучающих видеороликов, в том числе и по Вашей задаче.
Если появятся конкретные вопросы спрашивайте здесь, и Вам с удововольствием на них ответят :)
Aleksey.KIP Выделил Ваш вопрос в отдельную тему в разделе CODESYS 3: http://www.owen.ru/forum/showthread.php?t=29069
Я уже добавлял 8bit в модуль ModBus (Slave) и номеру каждого бита там соответствовал номер бита индикатора, но все равно ничего не выходило, не можете здесь подсказать ?
Помогите пожалуйста начинающему! У меня есть 2 генератора импульсов (один работает в автоматическом режиме, другой в ручном), оба они подключены к одному выходу ПЛК. Мне необходимо реализовать: когда в работе один генератор, то сигналы идут только с него. Объясните пожалуйста как это сделать.
Вопрос по библиотеке ПЛК_ПЧВ.lib
при подключении к ПЛК110 появляется ошибка:"неразрешенные ссылки на внешние POU"
Вложение 37948
причем в режиме эмуляции ошибок нет и компилируется все нормально
подскажиет есть ли библиотека для работы с шифратором 750-631/000-004?
Следовательно ошибку выдает контроллер, не так-ли?
С такой-же ошибкой (внешние POI были другие) я сталкивался при использовании библиотеки SysLibSockets.lib. Тогда выяснилось, что не все модели ПЛК поддерживают данную библиотеку.
А что за ПЛК_ПЧВ.lib? Какие функции ПЧВ Вам нужны?
Добрый день!
Данная библиотека выложена на сайте по ошибке, как внешняя. Внешние библиотеки не поддерживаются нашими ПЛК.
Для того, чтобы это исправить, необходимо:
1. Открыть библиотеку как проект.
2. В пункте меню "Файл" выбрать пункт "Сохранить как".
3. В нижнем выпадающем списке необходимо выбрать "Внутренняя библиотека .lib".
Вложение 37964
4. Сохранить в той же папке, где Вы уже была эта библиотека и под тем же именем, заменяя предыдущую версию.
После этого в проекте все будет компилироваться.
В ближайшее время на архив на сайте будет исправлен.
Может ли кто нибудь компетентно ответить на следующий вопрос. При конфигурировании Universal Modbus Devaice в параметре Work Mode при записи в панель переменных рекомендуется использовать параметр By value change(однократная запись при изменении выхода). Почему я не могу использовать параметр By Poil Time(циклическая запись).
С чем это связано? Проблема связана с зависанием кнопок на панели, если происходит ее отключение и повторное включение при работающем ПЛК.
Добрый день, подскажите, каким образом возможно пройтись в цикле по всем полученным битам (8 bits или 2 byte) по modbus? По битовому обращению типа x.i я так понимаю может обращаться только константа.