Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 43

Тема: ип320, номера регистров

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию ип320, номера регистров

    что означают значки возла номера регистра в конфигураторе ип320?

    там окошко, где написано 4х.

    при работе с функциональной кнопкой так же дописано 0х.

    спасибо!

  2. #2
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию в догонку - биты и байты

    не совсем понятно из описания конфигуратора следующее.

    я создаю несколько экранов, там есть разные элементы, в том числе регистры и биты из памяти плк (он слейв, т.е. сервер).
    как расположены области их реального размещения?
    как сделать так, чтобы регистры и биты не наложились друг на друга?
    как понимать биты, отвечающие за индикаторы и за кнопки - они в разных областях, или в одной?

    поясню на примере.

    беру первый регистр, который мне нужен и назначаю ему номер 0 (с непонятной мне пока приставкой 4х). допустим, это регистр, доступный только для индикации.

    беру второй регистр, который мне нужен. допустим, это регистр, доступный как для индикации, так и для изменения. прав ли я, что назначаю ему номер 1, следующий свободный?

    теперь у меня занято 2 адреса: 0 и 1. причем это двухбайтные регистры, то есть в байтах занято адреса 0, 1, 2, 3. верно?

    далее создаю индикатор. про их представление в памяти сервера сказано, что им нужно выделять по байту на рыло.
    какой номер могу назначить своему первому индикатору?

    или 0*8 = 0
    или уже 4*8 = 32? то есть, его размещает компилятор где-то отдельно от регистров или шпарит прямо в ту же область?

    а теперь создаю кнопку. не понятно, с какого бодуна авторы плк решили сделать адресацию этих бит, отличающуюся от адресации индикаторных бит, но сказано, что тут уже побитово.
    ладно. так какой номер я должен давать первой кнопке?

    или 0
    или 8 (если кнопки-индикаторы живут вместе, а регистры отдельно)
    или 33 (если и регистры, и индикаторы, и кнопки должны иметь неперекрывающиеся зоны адресов)

    я бы попробовал на живом комплекте, но пока нет возможности. поэтому надеюсь, что на эти простые вопросы получу ответы здесь. только умоляю, не отсылайте меня к примерам. можете ответить - ответьте, нет - сам разберусь. считаю, что на такого рода конкретные вопросы специалист может ответить тоже конкретно.

    спасибо!

  3. #3

    По умолчанию

    как расположены области их реального размещения?
    как сделать так, чтобы регистры и биты не наложились друг на друга?
    как понимать биты, отвечающие за индикаторы и за кнопки - они в разных областях, или в одной?
    Все-таки перечитайте еще раз руководство по конфигурированию ПЛК Овен. Есть там ответы на эти вопросы...
    создаю индикатор. про их представление в памяти сервера сказано, что им нужно выделять по байту на рыло.
    Не совсем так. Это пространство под индикаторы и кнопки выделяется порциями в размере 1 байт. Но в этом байте может разместиться до 8 индикаторов и кнопок (8 бит).
    Простейший пример. Допустим, вам нужно сделать для обмена с панелью два 16-битных регистра, один индикатор и три кнопки. Cоздавайте в ПЛК Modbus Slave (считаем, что панель - мастер), добавляйте в него 2 субэлемента "регистр" и один субэлемент "8 бит". Первый регистр будет иметь адрес "4x"0, второй - адрес "4x"1. Соответственно, в адресном пространстве (которое у Овена общее для всех переменных) первый регистр займет биты с 0 по 15, второй с 16 по 31. Добавленный после них "8 бит" займет биты с 32 по 39.
    Теперь можете работать с ними в проекте панели. Первому регистру указываете адрес 0, второму - 1. В индикаторах/кнопках указываете адрес бита, а не регистра. Т.е. первый по порядку битовый элемент у вас будет "0x"32, за ним "0x"33, "0x"34 и "0x"35... Сквозная нумерация битов в поле ввода-вывода, иначе говоря.
    Если сейчас добавить после "8 бит" еще один 16-битный регистр, то между ним и имеющимся "8 бит" будет вставлен байт для выравнивания. То есть биты с 40 по 47 будут неиспользуемыми, а регистр займет биты с 48 по 63.
    А если после "8 бит" добавить Float, то на выравнивание уйдет уже не один, а целых три байта. Поглядите на картинку расположения переменных в памяти ввода-вывода в руководстве по конфигурированию ПЛК, там все это наглядно нарисовано.
    Так более-менее понятно?
    "Только чтение", или "возможность модификации" - это функция, реализованная на уровне панели. То же самое относится и к индикаторам (кнопка - точно такой же бит, как индикатор, но панель может не только читать его, но и модифицировать).
    По части загадочных "0x" и "4x" не парьтесь. Это всего-навсего намек на команду Modbus, которой читается данный элемент в адресном пространстве. "0" - это "coil", т.е. одиночный бит, "4" - регистр. Поскольку ИП320 не предоставляет вам альтернатив выбора по этой части, просто наплюйте и забудьте.

  4. #4
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    спасибо огромное!

    достаточно понятно даже мне (хотя, поверьте, читал я описание конфигурации ип320 - но потому с спрашиваю, что там нет четких ответов).

    итак, резюмирую:

    1) если в конфигураторе я вижу значок 4х - это означает адресацию в регистрах, если значок 0х - это адресация в битах.

    2) все переменные - в едином адресном пространстве. поэтому нужно беспокоиться. чтобы пространство, занятое, скажем, регистром (со своим 4х) не перекрыло пространство, занятое битом (со своим 0х).

    если все так - можно не отвечать. еще раз спасибо - и до новых вопросов!

  5. #5
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    Все-таки перечитайте еще раз руководство по конфигурированию ПЛК Овен. Есть там ответы на эти вопросы...
    Подожди, подожди! Читаю это руководство больше, чем дочке своей сказок Но вот какая нескладушка и какие новые непонятки.

    1) Ты пишешь
    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    пространство под индикаторы и кнопки выделяется порциями в размере 1 байт. Но в этом байте может разместиться до 8 индикаторов и кнопок (8 бит)
    А что пишет тот документ, цицирую стр.21 (последний абзац перед п.4.9):

    Для одного индикатора в битовой области необходимо выделить целый байт, причем в конфигураторе указывается нулевой бит этого байта (т.е. номер бита должен быть кратен 8). При работе панель анализирует весь байт по логике ИЛИ, т.е. если любой из битов байта устанавливается в 1, то индикатор переключается.

    Опаньки! Так как правильно? Один бит на кнопку или 8 битов? Кстати, в примере (Конфигуратор) в таблице 7.1 получается, что все же индикаторам отводится целый байт. Может все же ты немного ошибся?

    2) Как выводятся значения из регистров, если их обозвали в конфигураторе FLOAT? Правильно ли я понимаю, что число "укладывается" в прокрустово ложе заданной разрядности и длины дробной части? Что показывается при выходе из рамок?

    Например, записано разрядность 5 и 2 знака дробных:

    ХХХ.УУ

    а у нас в регистре записано число 10000. Что выведется?

    Или в регистре 0.0001 - его ведь тоже можно в 5 разрядов вывести, но нарушится положение точки. Так выведется

    000.00
    или
    0.0001

    Ну, и отрицательные. Если не поставили значек "Знак", а в регистр попало FLOAT число -1 - то выведется 000.00 или что?

    3) При вводе значения регистра с клавиатуры панели - как вводить десятичную точку? Или нужно забить на ввод FLOAT?

    4) А при вводе числа в регистр, который объявлен вот так

    ХХХ.УУ

    - и мы ввели 12345. Что увидим на экране? Скорее всего, 123.45. Да?
    А что запишется в регистр? Там, если я уже что-то понял, будет просто двоичное представление числа 12345, а уж делить на 100 должен ПЛК. Да?

    5) Переприсвоение кнопок. По умолчанию все они имеют функции. Теперь представим, что в конкретном экране я переприсвою какой-то кнопке другую функцию. Она теперь не будет выполнять "основную"?
    Скажем, я даю кнопке "ВНИЗ" функцию установки бита (по которому там что-то ПЛК сделает, например, переключит экран или самоликвидируется). Так что теперь случится, если я начну ввод значения регистра, в котором, по описанию, эта кнопка должна изменять значение вводимого числа? Нажму ее и...? Изменится число или установится тот бит?

    6) Все те кнопки, которые не упомянуты в данном экране (не переприсвоены) - работают? По своим основным функциям, я имею в виду.

    7) При включении питания - какой экран будет светиться? В описалове сказано, что

    В поле «Главный экран» – указывается номер экрана, который будет переходить панель по нажатию кнопки [ESC] (обычно это либо экран главного меню, либо наиболее часто используемый экран).

    А на последней странице (в примере) уже сказано, что

    Главный экран (экран, который появится сразу после включения питания) ...

    Думаю, что все же Главным называют экран, который по включению и выводится. А в первой цитате - просто недосказано главное

    Итак, представим, что в данном проекте я поставил "Авт.смена экрана". Но при этом флажки в поле "параметры проекта" не дезактивировались. Значит, с Главного экрана переход, например, на указанный следующий экран, - произойдет через 1 минуту?
    Можно ли полагать, что в этот Главный я могу записать некое приветствие, а через указанное в поле "Выполнить" время панель выведет следующий экран - и после этого все переходы будут только по состоянию регистра, указанного в поле "Управление"?
    Или, если "Авт.смена экрана", то и с самого первого экрана перехода никуда не будет без воли ПЛК?

    Ну, вроде все. Или нет...
    Последний раз редактировалось drvlas; 13.11.2010 в 21:41.

  6. #6
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    Ну, вроде все. Или нет...
    Нет. Еще вопрос. Все же какое куцое описание! Читаю технические характеристики ИП320 и не вижу:

    Каковы пределы количества экранов? Где и как начинает сказываться размер проекта?

    В описании Конфигуратора пишется о том, что "динамические графические тексты" занимают много памяти и для больших проектов (более 20 экранов) их не рекомендуется использовать.

    Как сказывается число экранов на работе? У ПЛК100 памяти немеряно (я пришел от маленьких контроллеров и мне здесь всего много) и будет ли там занято 1К или 100К байт - что нам до того?
    Когда ИП320 отображает конкретный экран номер 123, он ведь читает из памяти ПЛК100 только релевантную информацию (для этого 123-го экрана)? Если да - то какая разница, сколько всего есть экранов?
    Если нет, то (страшно даже представить) ИП320 черпает из ПЛК всю память, относящуюся к ее работе?
    Или там все не так? А как?

    Почему спрашиваю. Распределяю память. Сначала положил битовую область. Хочу, чтобы она так и оставалась в начальной области - и чтобы на последующих стадиях проектирования мне не стало ее мало. Что мне мешает вообразить, что у меня будет 100 экранов и каждому я отведу по 2 байта битовых флагов (не считая тех индикаторов, которые займут байтные места)? Резервирую 200 байт.
    На байтовые (индикаторы) тупо резервирую по 20 байт на экран - еще 2000 байт. "Я съем при Вас, Вы сможете проверить"
    Потом располагаю область регистров. И тоже не хочу потом переделывать номера. Резервирую по 10 штук (20 байт) на экран = еще 2000 байт.
    То есть, при таком подходе в памяти ПЛК100 будет "захвачено" около 4200 байт, причем с огромными "дырами", ибо далеко не все экраны будут созданы и ни один из них (надеюсь) не использует все зарезервированные для него номера.

    Где мне от этого станет плохо, неудобно?

    Вопрос совершенно отдельный. При работе с конфигуратором ИП320 я создал экран 1, потом 2, 3, 4... Потом подумал, что экран номер 33 очень красиво было бы расположить сразу за экраном номер 1. Могу я его перенести на место второго и сместить номера всех от него до 32-го (не переделывая все экраны ручками)?

    Могу я для создания нового экрана взять имеющийся старый в качестве шаблона?

    Последние 2 вопроса, конечно, не сравнимы по важости с первым, но хочется работать удобно и иметь красивый список экранов...

  7. #7

    По умолчанию

    пространство общее, по этому надо:
    1. выравнивать пространство - распологая сначала 8-ми битные переменные, количество кратное двум (один регистр), потом регистры, четное количестов, потом 2-х регистровые. и соответственно считаете. четное количество - для выравнивания - легче будет не запутаться - пусть лучше в резерве останутся.

  8. #8

    По умолчанию

    выравнивать пространство - распологая сначала 8-ми битные переменные, количество кратное двум (один регистр), потом регистры, четное количестов, потом 2-х регистровые.
    Если хочется, чтобы все само собой уложилось "без дырок", то лучше в обратном порядке - сначала прописать все Float'ы, затем Word'ы, и после них уже добавлять "8-бит".

  9. #9
    Пользователь
    Регистрация
    21.10.2010
    Адрес
    msk
    Сообщений
    27

    По умолчанию

    а подскажите пожалуйста, я правильно понял, что
    1. в настройках модбас слэйв, я могу узнать номер регистра только путём подсчёта начиная с нуля? нигде этот номер не фигурирует?
    2. я не могу поменять номер регистра обмена просто поменяв его номер, а мне надо его переставлять, или вставлять новый и т.п.?

  10. #10

    По умолчанию

    вы все правильно понимаете.
    а с точки зрения расширения программы я бы начинал с битов. но имхо - дело вкуса и удобства.

Страница 1 из 5 123 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •