Вы это имели в виду?
Вложение 82614
Вложение 82615
Вложение 82616
Показываю на одном элементе, т.к. на всех достаточно долго выйдет
Вид для печати
Вы это имели в виду?
Вложение 82614
Вложение 82615
Вложение 82616
Показываю на одном элементе, т.к. на всех достаточно долго выйдет
Делала все по видео
https://www.youtube.com/watch?v=77fd...kKheVx&index=9
так а кто мастер кто слейв? в конфигурации у вас что-то интересное сделано, сходу непонятно
мастер - плк, слейв - панель
Вложение 82617
По одному биту записывать не очень правильно, биты можно передавать до 16 штук в одном регистре WORD, упаковывать и распаковывать биты в маску можно через точку.
например упаковка Mask.0:=b0; Mask.1:=b1; Mask.2:=b2; ........ Mask.15:=b15;
Распаковка b_0:=Mask1.0; b_1:=Mask1.1; b_02:=Mask1.2; ........b_15:=Mask1.15;
Читать, записывать регистры также как обычно.
что делать с одним-двумя кнопками, переключателями? гонять WORD порожняком?Цитата:
По одному биту записывать не очень правильно, биты можно передавать до 16 штук в одном регистре WORD,
Да уж лучше ворды гонять порожняком. Потом понадобится расширить проект, а свободные биты в регистрах уже есть...
Если битов больше чем 1, то быстрее будет гонять WORD. Мало того если есть другие целочисленные подряд, то их можно передавать группами.
Если отдельно биты и целочисленные, то только по очереди.
В данном случае, все регистры вместе с REAL можно передать 1 запросом, массивом WORD и не надо даже REAL раскладывать на 2 WORD.
Доброго дня.
Хотел уточнить некоторые моменты по опросу панелью СП3xx-Р регистров Slave устройств.
Из инструкции: При опросе регистров (3x и 4x) панель создает групповые запросы, если разрыв между опрашиваемыми регистрами не превышает 4. Иными словами, регистры 4x0 и 4x05 будут считаны одним групповым запросом (6 регистров с 4x0), а 4x0 и 4x6 – двумя одиночными.
Т.е. получается, если у меня 3 экрана с последовательной нумерацией регистров допустим по 10 WORD регистров на каждом (всего 30 регистров), то находясь допустим на первом экране опрашиваться будут все 30 регистров?
Вопрос выше не просто из любопытства.
Есть сборка, панель мастер и 4 слейва ПР103, сборка по ТСР. Так вот, на каждом слейве от 3 до 10 термопреобразователей. При отключенных датчиках все работает быстро без тормозов, просто шикарно. Но стоит начать подключать датчики панель начинает дико тормозить. Самое интересное что тормозит даже на окнах где нет регистров опрашиваемых датчиков. Складывается впечатление что регистры привязанные к аналоговым входам опрашиваются как то постоянно. Ошибка одна, по тайм ауту, добавление времени тайм аута не помогает.В проекте нет отключения последовательного опроса, внутренние регистры панели используются только на опрос ошибок и отключение слейв устройств.
Тормозит по тайм-ауту других ошибок не показывает.
Да, нашел пару ошибок в адресах, но самое интересное не в том блоке который больше всех тормозит. И опять же неточности. Вы же пишете что опрашивает только переменные экрана. Но тормозит даже на тех экранах где 100% нет ошибок. И только при подключении датчиков. Вот и возник вопрос, а не опрашивает ли она групповым даже то чего нет на экране. Если так, то тогда все в елочку складывается.
Вы же не выложили проект, если открыто окно, то оно открыто на каком то экране. Всё что есть на экране, включая ФО, таблицы и графики тоже опрашивается.
Так что открытое окно не показатель.
По поводу тайм -аута, рекомендуют уменьшить до 500 и ниже и число запросов поставить 0. Пробуйте.
То что окна приплюсовываются к экрану это понятно.
А зачем выкладывать проект? Да и не маленький он.
Вопрос то прост. При групповом опросе уходит опрос за пределы открытого экрана или нет. Может на этот вопрос кто то точно ответить?
По поведению панели, складывается впечатление что уходит.
Проверить сам смогу только в понедельник, объект в другом городе. Хотелось бы к понедельнику выяснить эти вопросы.
Я так понял окна тревог по умолчанию глобальные?
Здравствуйте, подключил 2 панели СП307 к ПЛК110.32 по этому примеру и обнаружил странную ситуацию: если с СП307, которая является ведомой, через элемент цифровой ввод изменять значение переменной типа DWORD (float), то в ПЛК и СП307 которая host значения изменяются, а в ведомой СП307 на элементе цифровой ввод остается ноль. При этом если так же через цифровой ввод изменять значение в СП307 host, то в ней значение цифрового ввода изменяется, в ПЛК тоже изменяется, а в ведомой СП307 все так же ноль. такой результат получается если включить в СП307 "изменить порядок регистров", если же этого не делать то все работает как положено, но тогда значение в ПЛК принимает не правильный вид.
Регистры в панелях можно не переставлять, можно переставить в одной из панелей или в двух панелях, на крайняк можно переставить в самом ПЛК, используя функцию.
Код:FUNCTION S_W : REAL
VAR_INPUT
ai:REAL;
END_VAR
VAR
p: POINTER TO DWORD;
END_VAR
___________________________________________
p:=ADR(ai);
p^:=ROL (p^,16);
S_W:=ai;
Не может.
(Из технического описания): Панель автоматически формирует групповые запросы к slave-устройствам. Если в
групповой запрос входит номер регистра, который отсутствует в slave-устройстве (что характерно
для устройств с «рваными» или формируемыми пользователем картами регистров), то в ответ
вместо данных приходит сообщение с кодом ошибки. Максимальное число опрашиваемых
регистров в одном групповом запросе – 16.
В моем случае были рванные регистры. Перелопатил все карты регистров, проблема ушла но вопросы остались.
Выстроил на экране все в ряд и получил новую проблему. Данные DWORD перестали отображаться. При подсчете выяснилось, что крайний регистр оказывается 17-ым, соответственно при опросе дробится элемент DWORD и рушит весь опрос. Пришлось сделать отмену группового опроса (Из технического описания): Во время опроса регистров (3x и 4x) панель создает групповые запросы, если разрыв между
опрашиваемыми регистрами не превышает 4. Иными словами, регистры 4x0 и 4x5 будут считаны
одним групповым запросом (6 регистров с 4x0), а 4x0 и 4x6 – двумя одиночными.
Чтобы отключить автоформирование групповых запросов следует в настройках каждого из
элементов, участвующих в опросе, поставить галочку Дин. адр. и указать регистр, который не
используется панелью (т. е. его значение всегда равно 0).
После этих манипуляций все заработало, но танцы с бубном еще те.
Решил описать ситуацию, может кому пригодится.
Потратили кучу времени, чтобы сделать всё через одно место, вместо ускорения обмена, вы его замедлили. Даже если читать по 16 регистров,
все равно, это в 16 раз быстрее чем по одному.
Всё что надо было сделать, правильно расположить регистры, чтобы DWORD не разрывало.
Обычно ставят Маски бит по 16 шт, потом целочисленные, потом 32 битные, если 32 битная попадает в нечётный адрес,
добавляют 1 резервный регистр, смещая все 32 битные на чётные адреса, всё !!!
16 регистров, это 8 шт. DWORD, как он может попасть в нечетный адрес, чтобы его разделило, известно только вам
Добрый день!
Подскажите, чем можно открыть файл XJT из библиотеки. GIMP не поддерживает.
Все так и сделано как вы описали. Сначала первыми маски стоят, потом WORD, и только потом DWORD. То что надо подгонять число регистров под групповой опрос тоже понятно. И про разрыв тоже понятно.
Не понятно только почему господа "шаблонщики" этих нюансы с групповым опросом в прошлую среду не объяснили, а тихонечко слились?
У самого же ушло время, потому что информация про опрос в 16 регистров в встроенной инструкции нет, а в инструкции с сайта есть.
Спасибо никому не скажу, т.к. самому пришлось во всех этих корявых недоделанных инструкциях разбираться. Да инфа в 124 регистра сильно с пути сбила.
В панели можно использовать многие форматы, png, jpg, bmp Вложение 82846 Это всё работает в панели СП3хх.
Картинки в xjt запоминаются при создании дисплеев, кнопок, индикаторов, прямо в панели из тех же png, jpg, bmp
Картинки GIMP, в своём редакторе тоже можно конвертировать в те же png, jpg, bmp, на сколько понял.
Но иногда панель МОЖЕТ формировать групповые запросы к слейву с количеством регистров больше чем 16.
Это тот случай, когда на экране есть таблица
Таблицы в группировке с другими элементами экрана не участвуют. Для таблиц всегда будут свои групповые(если столбцов несколько) или одиночные(если только один столбец) запросы к слейву.
Таблица представлена массивом структур.
Формат структуры и количество регистров в ней определяется количество столбцов и типом данных в каждом столбце.
Таблицы читаются построчно. Причем второе правило "максимальное число регистров в групповой команде чтения не может превышать 16" на таблицы не распространяется, в одной группе будет столько регистров, сколько нужно для одной строки, хоть 125!
Запросы на чтение строк разнесены по разным циклам выполнения программы.
В каждом цикле читаются все регистры только одной строки
Например
Дисплей и таблица 1 столбец 3 строки
Вложение 82850 Вложение 82851
1. чтение 4х0 (дисплей)
2. чтение 4х2 (первая строка таблицы)
3. чтение 4х0 (дисплей)
4. чтение 4х3 (вторая строка таблицы)
5. чтение 4х0 (дисплей)
6. чтение 4х4 (третья строка таблицы)
и т.д.
Дисплей и таблица 10 столбцов DWORD 3 строки
Вложение 82852
1. чтение 4х0 (дисплей)
2. чтение группы 4х2, 4х3...4х21 (первая строка таблицы 20 регистров в запросе)
3. чтение 4х0 (дисплей)
4. чтение группы 4х22, 4х23...4х41 (вторая строка таблицы 20 регистров в запросе)
5. чтение 4х0 (дисплей)
6. чтение группы 4х42, 4х43...4х61 (третья строка таблицы 20 регистров в запросе)
и т.д.
Здравствуйте. Есть панель СП300. Она опрашивает данные с устройства по нажатию кнопки (функция Нажата). Т.е. нажали, опросили устройство один раз. Но что будет, если связи с устройством нет, или связь плохая (пакет пришел с ошибкой, таймаут ответа)? Будет ли панель пытаться повторить запрос до получения адекватного ответа, иои отправила запрос один раз и пришло, не пришло = как получится?