Да, конечно https://owen.ru/uploads/adresaciya_registrov_pchv12.pdf
Вид для печати
Скорее всего я не понимаю каких-то базовых принципов. Но в общем вот, использую сетевую переменную, с соответствующим номером регистра и пытаюсь ее передать. Общая схема: СП307(мастер) - ПР200(слейв/мастер) - ПЧВ1 (слейв)
Вложение 63345
Да, Вы разберитесь с форматами данных. А именно что такое регистр, что такое формат числа,.Если смотреть по мануалу там какая-то чушь формат Uint32 возможные значения 0,05 -3600 что противоречит формату.
Далее, сетевая пр-ки целочисленная 16 разрядов , 2 байта по 8 бит.И тут есть повох это чередование байт. Попробуйте для начала поменять их местами (байты). Скорей всего у Вас эта проблема.
Спасибо, что касается форматов данных, пока не понимаю, попытаюсь разобраться, но все же каким образом поменять байты местами? это вообще возможно сделать в OL?
Меню прибор-настройки прибора-интерфейс-слот и т.д. увидите меню с сетевыми.
Там же написано над таблицей:
..
В некоторых параметрах по умолчанию смещено положение десятичной точки, для
того чтобы осуществлять передачу в формате регистра. Например значение регистра 16-13, равное 504, указывает на частоту привода 50,4 Гц.
..
Для этого параметра коэффициент 0.01 - значит значения будут в диапазоне 5...360000
Практики использования ПР в качестве мастера у меня нет, но попробуйте:
Добавьте целочисленную переменную в свое устройство, адрес регистра укажите 3408, поставьте для этой переменной количество регистров - 2. Ну а потом подберете методом тыка последовательность байт при передаче для этого устройства.
Если не выйдет попробуйте так же только с адреса 3409 и попробовать менять еще очередность регистров. Я делал на ПЧ ДЭ. но ноута с проектом нет. Не помню. UINT32 подразумевает 2 регистра .
У Вас заморочка в этих особенностях. очередность не стандартизована и может в разных приборах отличаться. Связь есть. пуск-стоп работает пробуйте в этом месте. в значении не забывайте про коэффициент.
Так сделать? регистр 3508, потому что в командном слове изменение скорости 1. А последовательность байт в отмеченной области менять или как-то по другому?
Вложение 63346
Это зависит от типа изменения скорости, у меня в командном слове указан второй
Вложение 63347
Только что все возможные комбинации прогнал, выхлопа 0. Я же правильно понимаю, по принципу действия: я передаю значение в сетевую переменную с нужным регистром, и зависимое устройство должно изменить свое значение? Просто я попробовал по RS-485 напрямую через конфигуратор ПЧВ менять, и таким образом все получилось, но там нужно нажать отдельно нажать на кнопку записи. Возможно в программе тоже должен быть какой-нибудь "триггер" для записи?
Какое значение Вы пытались записать. Связь есть вообще? Из этого поста я понял что макрос Вы именно сейчас не использовали? На вкладке с настройками(там же где чередование) есть пунктик "статус" создайте там переменную булеву. и смотрите на нее если связь норм. она 1 если нет 0.
В настройках" запись по изменению"Цитата:
Возможно в программе тоже должен быть какой-нибудь "триггер" для записи
Настройки ПЧ не меняли. я о разрешении управления по сети и т.п.? И прочтите вступают ли эти изменения без перезагрузки ПЧ.?Попробуйте еще выставить этот параметр на морде и посмотреть меняется он или нет после записи с ПР. . Я еще до РЭ не добрался.
в ПЧ Выставлены такие параметры
Вложение 63350
Какое значение писали . до какой скорости разгон. ?
Здравствуйте. Есть сетевая переменная - идет на слейв порт 485. Она является энергонезависимой, как тут говорили. Она же будет и уставкой. Редактируется с экрана и по RS. При уставке 0 - моя прога виснет. С экрана то я могу задать диапазон ввода, а по сети как назначить диапазон? Или запретить назначение уставки 0...
Вобщем то запретить действия при нулевой уставке не сложно одним элементом И, но как это грамотно решается? Может функцией, к примеру если уставка =0 то уставка =1 ???
Проблема с записью данных формата Uint32 в регистры ПЧВ по rs-485 решена. Ввод данных осуществляется через панель СП307, в связи с этим необходимо изменить тип значения при вводе данных на "DWORD". Плюс, как правильно подметили в ОЛ для переменной нужно указать 2 регистра, функцию записи 0х10 и изменить очередность регистров (старшим регистром вперед) (3,4,1,2). Так же нашел небольшое обсуждение на форуме https://forum.segnetics.com/showthread.php?t=2666. Может кому-то будет полезно. Спасибо Sergej_ и 1exan за помощь.
Здравствуйте. Прочитал, что сетевые int-овые переменные могут принимать значения только в диапазоне от 0...65535. А что делать, если мне нужно передать целое число не из этого диапазона, например 1000000 или -50 ? Как это проще реализовать?
1000000 нужно разбить на две части(15*65536 + 16960) - младшую и старшую и положить в две соседние сетевые переменные
Вложение 63469
для -50 ничего делать ненужно, все получится автоматом, т.к. ОЛ запишет -50 в сетевую переменную в дополнительном коде, (4294967246 dec ==FFFFFFCE hex) из FFFFFFCE в сетевую перемнную попадет младшая часть FFCE
Вложение 63467
спасибо за ответ. А не подскажите почему может быть неактивна кнопка "Онлайн-отладка"? ПК соединен с ПР103 через Ethernet. Программа заливается нормально, а в онлайн-режим не заходит
Всем добрый вечер, прошу в помощи разработки программы. Суть в следующем: необходимо включить две группы нагревателей по 10 минут на каждую но только тогда, когда температура воздуха буде ниже -5 градусов датчик пт 1000.