PDA

Просмотр полной версии : Запись значений из OPC сервера в ПЛК



Александр_Гранд
15.12.2012, 21:09
Доброго времени!

Настроил (вроде) связь ПЛК100 - ИнСАТ ОРС Модбас сервер. По модбас. Использую порт RS-232 (к буку через USB-COM преобразователь подключил. хороший, омроновский).
Дык вот ОРС сервер прекрасно читает значения из ПЛК, а писать обратно что-то не выходит... Может я что недопонял... Может в программе ПЛК что-то не доделал по связи? Ткните пальцем, в чем тут проблема? Где рыть?

Приложу программу ПЛК и конфиг ОРС сервера.
Оч жду ответов! Заранее благодарен.

lomtik
16.12.2012, 04:06
а что происходит когда пытаешься записать, или тупо не меняет значения и все?
я у себя меняю кодесисом. У меня при записи новой переменной через модбас, она сначала меняла свое значение в модбасе, а потом обратно меняла на старое значение. Но как я понял это была особенность моей программы что ли, потому что при записи в простую программу в ПЛК (типа х=1 меняем на х=5) все работало. Заморачиваться не стал. Попробуй протесть, и не забывай про тип доступа тэга read/write.

Александр_Гранд
16.12.2012, 12:49
Ну вобщем, если из скады пытаться менять значения в ПЛК, то именно так все и выглядит. Значение в скаде сначала меняется на новое, а потом возвращается к старому. По сути в ПЛК запись не происходит, поэтому скада на следующем опросе и вычитывает старое значение.
Тип доступа тэга - ReadWrite, конечно же. Это настройка в ОРС сервере.

Тут такое дело. В конце программы ПЛК я присваиваю значение нужной внутренней переменной другой (модбас) переменной, описанной в ПЛК конфигурации с адресом, например, %QX9.1.0.6. (либо это может быть переменная связанная с ТРМ по ОВЕНу).
Дып ло логике в начале программы надо бы вычитывать из этих модбас переменных присланные новые значения (если их прислали) обратно во внутренние. В программе ПЛК есть попытка это сделать, НО не работает...

Может чтение новых значений модбас переменных нужно производить с какого-либо другого адреса? Например не %QX9.1.0.6, а %IX9.1.0.6 ? Вроде и так пробовал. Вообще на адрес кодесис ругается...

capzap
16.12.2012, 12:59
избавтесь от подобных присвоений %QX...
Именуйте каналы в конфигурации и в программе пользуйтесь только именами переменных

Александр_Гранд
16.12.2012, 13:24
избавтесь от подобных присвоений %QX...
Именуйте каналы в конфигурации и в программе пользуйтесь только именами переменных
А как избавится то? Как их именовать?
При создании подэлементов в Modbus(Slave) можно только комментарий присобачить... А именовать не вижу возможности. Или имеете ввиду в программе в разделе описания переменных VAR это отразить?

capzap
16.12.2012, 13:28
нет в конфигураторе, читайте в документации, я раз двадцать уже давал ссылку на какой странице и какой рисунок, извините сейчас нет возможности это сделать

Александр_Гранд
16.12.2012, 13:32
Ни в коем случае и не настаиваю на конкретной ссылке :) в любом случае спасибо за уверенную наводку. буду искать.

...Но если еще у кого какие мысли по этому поводу появятся, прошу, напишите. Пробовать и проверять буду ночью (когда мои все уснут и дадут наконец поработать :). А ночью уже фиг чё переспросишь..