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

Тема: Как разместить адресное пространство MODBUS в энергонезависимой области ПЛК?

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Как разместить адресное пространство MODBUS в энергонезависимой области ПЛК?

    прошу помощи..
    в разрешении вопроса размещения регистров MODBUS в энергонезависимой памяти ПЛК.
    Сейчас ПЛК не доступен, проверить не могу..

    если я объявляю регистры MODBUS в области RETAIN (на картинке переменные value_998 value_999),
    будут они сохранять свое значение или необходимо в цикле их переписывать в память RETAIN?

    Компилятор не ругается на такое объявление переменных..

    Спасибо большое.
    Изображения Изображения

  2. #2

    По умолчанию

    Тезисы:
    1. Все Slave-регистры в конфигурации ПЛК автоматичеси становятся RETAIN.
    2. Все такие вот переменные и настройки проще собрать в структуру и ОДИН раз отобразить её на память Slave в конфигурации ПЛК. Чтобы с прямыми адресами так не возиться.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  3. #3

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    прошу помощи..
    в разрешении вопроса размещения регистров MODBUS в энергонезависимой памяти ПЛК.
    Сейчас ПЛК не доступен, проверить не могу..

    если я объявляю регистры MODBUS в области RETAIN (на картинке переменные value_998 value_999),
    будут они сохранять свое значение или необходимо в цикле их переписывать в память RETAIN?

    Компилятор не ругается на такое объявление переменных..

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

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    благодарю
    по поводу второго пункта не понимаю как структуру отобразить на память Slave.
    разъясните пожалуйста. Я могу массив записывать в память slave, а как отобразить структуру?
    Разъясняю скриншотами. Тезисы такие:
    1. Создаём в Slave нужное число регистров.
    2. Присваиваем переменную первому из них.
    3. Открываем Эксель и делаем таблицу из номеров регистров и их значений. Она же потом поможет программировать панель оператора и вообще в документацию пойдёт.
    4. Набиваем тип-структуру для удобства работы.
    5. Объявляем переменную-УКАЗАТЕЛЬ на этот тип.
    6. В задаче где-то в самом начале присваиваем адрес первого элемента Slave этому указателю.
    7. Дальше в коде обращаемся к указателю и через точку получаем все нужные регистры и поля.
    8. Для того, чтобы первый раз загрузить настройки по умолчанию, объявляем нашу же структуру константой с нужными значениями.
    В структуре делаем какой-нить флаг типа "SettingsOK" и, если он False - загружаем настройки по умолчанию.

    PO-Struct-1.gif PO-Struct-2.gif PO-Struct-3.gif PO-Struct-6.gif Clip.gif Clip_2.gif Clip_3.gif

    Просьба ВНИМАТЕЛЬНО изучить все скриншоты. И потом думать =)
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  6. #6

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Разъясняю скриншотами. Тезисы такие:
    1. Создаём в Slave нужное число регистров.
    2. Присваиваем переменную первому из них.
    3. Открываем Эксель и делаем таблицу из номеров регистров и их значений. Она же потом поможет программировать панель оператора и вообще в документацию пойдёт.
    4. Набиваем тип-структуру для удобства работы.
    5. Объявляем переменную-УКАЗАТЕЛЬ на этот тип.
    6. В задаче где-то в самом начале присваиваем адрес первого элемента Slave этому указателю.
    7. Дальше в коде обращаемся к указателю и через точку получаем все нужные регистры и поля.
    8. Для того, чтобы первый раз загрузить настройки по умолчанию, объявляем нашу же структуру константой с нужными значениями.
    В структуре делаем какой-нить флаг типа "SettingsOK" и, если он False - загружаем настройки по умолчанию.

    PO-Struct-1.gif PO-Struct-2.gif PO-Struct-3.gif PO-Struct-6.gif Clip.gif Clip_2.gif Clip_3.gif

    Просьба ВНИМАТЕЛЬНО изучить все скриншоты. И потом думать =)
    "Фантики" - это хорошо, структурированно и красиво, но с ними ("фантиками") потом копаться в чужом коде то еще "удовольствие"...

    Такие больше всего нравятся:

    Clip_2.gif

    Последний раз редактировалось Spawn; 07.11.2023 в 10:35.

  7. #7

    По умолчанию

    Цитата Сообщение от Spawn Посмотреть сообщение
    "Фантики" - это хорошо, структурированно и красиво, но с ними ("фантиками") потом копаться в чужом коде то еще "удовольствие"...
    Не понял юмора. То есть, местным гопникам вместо того, чтобы открыть ОДИН список переменных VarsOP, прочитать там описания, нумерацию и назначение всех полей и битов, удобнее видеть что-то типа
    * word1.14
    * ipa7.12
    * zzbq
    * ton1
    * rtrig1
    Я понимаю, что я эээ.. со свиным рылом в калашный ряд, и что в программировании ПЛК вообще очень мало людей с культурой и стандартами кода (только я и Евгений Кислов, ахаха), но всё же реакции вида "Высмеять всё, что не понятно вместо того, чтобы спросить", я не ожидал.
    Ну, дополняю скриншотами.
    OP-Links-1.gif OP-Links-2.gif OP-Links-3.gif OP-Links-4.gif
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  8. #8

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Не понял юмора. То есть, местным гопникам вместо того, чтобы открыть ОДИН список переменных VarsOP, прочитать там описания, нумерацию и назначение всех полей и битов, удобнее видеть что-то типа
    * word1.14
    * ipa7.12
    * zzbq
    * ton1
    * rtrig1
    Я понимаю, что я эээ.. со свиным рылом в калашный ряд, и что в программировании ПЛК вообще очень мало людей с культурой и стандартами кода (только я и Евгений Кислов, ахаха), но всё же реакции вида "Высмеять всё, что не понятно вместо того, чтобы спросить", я не ожидал.
    Ну, дополняю скриншотами.
    OP-Links-1.gif OP-Links-2.gif OP-Links-3.gif OP-Links-4.gif
    Cs-Cs, Вы что, "не с той ноги встали?"

    Никто ваш код и не высмеивал, лишь поделился своим мнением.

    Я на самом деле считаю, что это хорошо, структурированно и красиво, только читается не просто. Зря Вы так...

  9. #9

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    прошу помощи..
    в разрешении вопроса размещения регистров MODBUS в энергонезависимой памяти ПЛК.
    Сейчас ПЛК не доступен, проверить не могу..

    если я объявляю регистры MODBUS в области RETAIN (на картинке переменные value_998 value_999),
    будут они сохранять свое значение или необходимо в цикле их переписывать в память RETAIN?

    Компилятор не ругается на такое объявление переменных..

    Спасибо большое.
    Что вас всех так тянет указывать прямые адреса? Не нужно этого делать, достаточно дать имена переменным в конфигурации или или в глобальных и всё.
    Переменные в слейве (уже будут RETAIN) или в глобальных RETAIN.

  10. #10

    По умолчанию

    а как структуру скопировать в область slave?
    понятно массив присвоением...
    каждый элемент отдельно?

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

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 04.06.2019, 09:38
  2. Ответов: 9
    Последнее сообщение: 19.07.2016, 13:00
  3. адресное простраество OPM
    от lis471 в разделе OWEN Proces Manager
    Ответов: 3
    Последнее сообщение: 23.04.2014, 13:02
  4. Ответов: 4
    Последнее сообщение: 15.02.2010, 06:55

Ваши права

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