This is topic Ошибка Неверная привязка в трансляции in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/59/t/000041.html

Posted by vector1980 (Участник № / Member № 8211) on :
 
Доброго дня.
Тестовая программка. В шаблонах программ создал FBD программу с одним блоком PB,
использую вход IB0, IB1 и выход O. В аргументах программы создал два входа тип - bool, выход тип - int16.
Создал дискретный канал, в настройках канала число бит 16, привязываю (либо руками, либо перетаскиванием из шаблонов) "вызов программы", тут же во вкладке "Аргументы"
привязываю аргументы программы (типы данных совпадают). Запускаю "сохранить для МРВ" - ошибка "EMS_ARG_LINK_ATTR,.....,Неверная привязка в трансляции".
Причём если перетащить шаблон этой программы в дерево узла, и привязать аргументы созданного канала класса Call вызова этого шаблона также, как и в случае выше, то всё будет работать.
Ни в хелпе (ох, больная тема, почему нет хотя бы поиска?), ни в видеоуроках, объяснения не нашёл. Возможно, не внимательно смотрел?
В 5-й, в 6-й версии ТМ всё прекрасно работает. У меня 226 каналов после конвертации проекта из ТМ6 с такой ошибкой, трансляция (вызов программы) поломан. (
В чём проблема? Спасибо.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by vector1980:
Доброго дня.
... Запускаю "сохранить для МРВ" - ошибка "EMS_ARG_LINK_ATTR,.....,Неверная привязка в трансляции"...

Здравствуйте!
Вы не правильно сделали привязку.
Ознакомьтесь с описанием Трансляции в Справочной Системе - Каналы - Числовые каналы - Числовые каналы


quote:
Отправитель / Originally posted by vector1980:
...
Ни в хелпе (ох, больная тема, почему нет хотя бы поиска?), ни в видеоуроках, объяснения не нашёл. Возможно, не внимательно смотрел?

Смотрите. При компиляции сообщение "неверная привязка в трансляции". Открываем канал, у которого проблема (в данном случае discrete) и нажимаем F1. Должна открыться Справочная система на разделе "Канал класса DISCRETE". В нем (аналогично для каналов Analog) есть описание трансляции и ссылка на раздел "Числовые каналы".


quote:
Отправитель / Originally posted by vector1980:
Спасибо.

Пожалуйста. Успехов в работе.
 
Posted by vector1980 (Участник № / Member № 8211) on :
 
Спасибо за скорый ответ. К сожалению, он не помог.
Перед тем как написать сюда, я до "мух в глазах" зачитал те разделы что вы советуете. Кстати, они почти точно скопированы с помощи в TM6, раздел "Числовые каналы" полностью.
Ответа в них на описанную мной проблему я не нашёл, примеров тоже нет. В ТМ5 и ТМ6 я много лет делал те же операции с трансляцией и привязкой, ни каких проблем не было.
Пожалуйста, внимательно прочитайте моё первое сообщение. Я привязываю аргументы в вызове программы так же, как и делает встроенный конвертер из TM6 в TM7, собственно по другому и не сделаешь. И это не работает, ошибки.
Создал другую FBD программу, с единственным блоком MOVЕ, два аргумента real, один in, другой out. Подключаю его к этому же каналу в трансляцию, так же привязываю аргументы и всё работает.
Почему не работает программа в трансляции с единственным FBD-блоком типа PB?
Где я (и встроенный конвертер проектов из ТМ6 в ТМ7) не так делаю? Спасибо.
 
Posted by vector1980 (Участник № / Member № 8211) on :
 
Здравствуйте.
Прошло три дня, вопрос оказался сложный и ответов у тех.поддержки пока нет... Опишу проблему проще.
1. Создаю новый проект.
2. В шаблонах программ создаю FBD программу с единственным блоком НЕ(!X).
3. Создаю два аргумента, тип bool, один IN, другой OUT.
4. В программе на вход указываю аргумент IN, на выход аргумент OUT.
5. Компилирую программу, ошибок нет.
6. Создаю узел RTM_0
7. Создаю единственный канал Discrete, тип IN, кол-во бит 16.
8. Методом drag-and-drop перетаскиваю программу из шаблонов программ в поле "вызов программы" в окне свойств канала.
9. Во вкладке Аргументы окна свойст канала привязываю аргументы, аргумент IN программы к биту 0 дискретного канала, аргумент OUT к биту 1 этого канала.
10. Сохраняюсь, жму "Сохранить для МРВ", получаю:
ERR-LOAD:EMS_ARG_LINK_ATTR,1,Discrete_1,неверная привязка в трансляции
CER-FCNV:EMS_ECANCELED,node_0.dbb,операция отменена
11. ?????
Менял тип аргументов, уже перебором, для эксперимента, то же самое. Менял направление пердачи с in на out, то же самое.
Как это исправить???
Я не знаю как ещё проще и подробнее расписать проблему.

P.S. Заказчик купил ТМ7 (лучше, актуальнее, новее и пр...), нужно переписать программу с ТМ6. Переписал. Теперь в 226 каналах где в трансляции программа в FBD с битовыми привязками, хоровод таких ошибок.
И думаю, это ещё не все сюрпризы... Правда, хочу ошибиться.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by vector1980:
Спасибо за скорый ответ. К сожалению, он не помог.
Перед тем как написать сюда, я до "мух в глазах" зачитал те разделы что вы советуете...

Здравствуйте!
В указанный параграфах есть описание какие атрибуты используются "перед" трансляцией, а какие "после".
Например, для канала Analog с направлением input в трансляцию необходимо, как вход, передать Аппаратное значение, а, как выход, использовать Реальное значение.
Для Вашего случая (какой тип канала и какое направление) проверьте в Справочной Системе какие атрибуты необходимо использовать.

quote:
Отправитель / Originally posted by vector1980:
...
Создал другую FBD программу, с единственным блоком MOVЕ, два аргумента real, один in, другой out. Подключаю его к этому же каналу в трансляцию, так же привязываю аргументы и всё работает.
Почему не работает программа в трансляции с единственным FBD-блоком типа PB?
Где я (и встроенный конвертер проектов из ТМ6 в ТМ7) не так делаю? Спасибо.

Потому, что Вы не привязали необходимые атрибуты.
Давайте разберем пример.
Канал Discrete. Блок PB и так далее, как Вы указали в первом сообщении.
Предположим, канал Discrete будет input (атрибут 81, редактирование узла).
В справочной системе написано "Аппаратное -> Трансляция -> Реальное".
Очевидно, выход программы привязываем к Реальному значению.
Привязка двух аргументов к атрибутам 10 и 11 (bit0 и bit1) некорректна, так как нет привязки к Аппаратному значению.
Согласно Справочной Системе, один из входов программы трансляции должен быть привязан к Аппаратному значению.


В Вашем случае, в шаблоне программ создайте дополнительный входной аргумент и, в канале Call.Program этот аргумент привяжите к атрибуту Аппаратное значение Вашего канала.

[ 05.03.2024, 09:09: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by vector1980:
...
Как это исправить???
Я не знаю как ещё проще и подробнее расписать проблему.

Спасибо за подробное описание процедуры настройки канала трансляции.

В Trace Mode 7, для корректной работы процедуры трансляции, необходимо использовать указанные в Справке атрибуты как входные и выходные.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2