Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: ПЛК150-220.А-М (master) СП307Б (slave): работает write, но не работает read

  1. #1

    По умолчанию ПЛК150-220.А-М (master) СП307Б (slave): работает write, но не работает read

    Здравствуйте.

    ПЛК150-220.А-М (master); СП307Б (slave); Cвязь между ними RS-232 Debug.

    ПЛК посылает данные на СП, СП успешно их принимает, но не работает чтение контроллером данных с панели.

    К посту прикладываю оба файла (pro и txp).

    В программе ПЛК (язык ST) заведены переменные xOutput, wOutput, dwOutput, которые, по идее, должны приобретать свои значения от входящих xInput, wInput, dwInput соответственно. На панели изменения значений xOutput, wOutput, dwOutput не выполняется.

    Также есть переменные xOutput1, wOutput1, dwOutput1, значения которых в программе просто равны true, 128 и 512.16 соотвественно. Эти переменные при первом проходе цикла программы посылаются на СП и панель показывает полученные значения/состояния.

    Вывод: нет чтения данных контроллером с панели.

    Много раз проверял оба файла, все вроде по уму, а не работает.
    Вложения Вложения

  2. #2

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение

    Вывод: нет чтения данных контроллером с панели.

    Много раз проверял оба файла, все вроде по уму, а не работает.
    Не пойму, вы до сих пор не подключились к контроллеру по изернету? Зачем вы зацикливаете чтение с панели и сразу отправляете обратно в панель?
    Подключитесь и смотрите чтение контроллером в программе. Принимаются ли переменные.
    Когда убедитесь, что принимаются, пойдёте дальше. 1 Чтение из панели.jpg
    Если уж так надо, в контроллере есть выходы с реле, вот и управляйте кнопкой на панели выходом ПЛК. DO1 := xInput;

    А вот это пока удалите.
    xOutput := xInput;
    wOutput := wInput;
    dwOutput := dwInput;

    Прочитанные переменные, должны управлять программой, а уже из программы другие переменные отправляться в панель. Принятые значения с панели, это как правило уставки.
    Зато уже влезли в конфигуратор задач и сделали там Циклическую задачу с интервалом 100 мс, зачем? Удалите её нафик.
    Последний раз редактировалось kondor3000; 21.01.2022 в 21:36.

  3. #3

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Не пойму, вы до сих пор не подключились к контроллеру по изернету?
    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Подключитесь и смотрите чтение контроллером в программе.
    Я уже на Ethernet-е. Конечно, это гораздо удобней. В Codesys вижу онлайн изменения переменных, входов и т.п. Теперь КС1 практически не требуется.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Зачем вы зацикливаете чтение с панели и сразу отправляете обратно в панель?
    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вот так не делают:
    xOutput := xInput;
    wOutput := wInput;
    dwOutput := dwInput;
    Я это сделал чтобы получить данные с одним регистров/битов СП, а передать другим регистрам/битам СП.
    Конечно, прикладная ценность этого равна нулю, но мне, все же, нужно обкатать и чтение, и передачу. А это самый простой способ.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Зато уже влезли в конфигуратор задач и сделали там Циклическую задачу с интервалом 100 мс, зачем? Удалите её нафик.
    Вычитал это в примере "Настройка обмена СП3хх с ПЛК на CODESYS 2.3" раздел "02_СП3xx. Пример обмена с ПЛК110 [M02] по Modbus RTU, панель - Slave". Там правда, до кучи, еще и обе программы есть (для ПЛК и СП), но, пока в них не залазил, тем более, что pro файл от ПЛК110.
    Мне показалось, что получится "масло масленное", но потом забыл удалить созданное задание.
    Сейчас я его удалил, перезалил проект в ПЛК, но ничего не изменилось.

    Переменные xInput, wInput, dwInput, по логике вещей, можно изменить либо на СП, либо, наверное, в Codesys:
    1) Их изменение через СП никак не влияет на возвращающиеся обратно, но в другие регистры/биты, переменные xOutput, wOutput, dwOutput.
    2) Изменить их в Codesys не получается. Судя по всему, программа этого не позволяет, пока программа крутится.

    Вот такие дела.

    Думаю, нет чтения. Где-то косячу.

  4. #4

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Я уже на Etherne

    Думаю, нет чтения. Где-то косячу.
    Я вам даже скрин выложил, добейтесь чтобы данные принимались как у меня. Остальное удалите, что сказал. Исправил первый пост.
    В UMD для записи "Nativ" не нужен.
    Последний раз редактировалось kondor3000; 21.01.2022 в 22:14.

  5. #5

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Я вам даже скрин выложил, добейтесь чтобы данные принимались как у меня. Остальное удалите, что сказал.
    )))))))))))))))) пойду с собакенами погуляю и буду добиваться.
    Спасибо ))

  6. #6

    По умолчанию

    20220121_01.jpg
    Я пока пробую все это сделать через RS-232, у вас на скрине RS-485, хотя думаю дело в чем-то другом.
    В общем, Codesys не дает менять переменные блока input.
    Меняя состояние xInput(PSB256), вводя значения wInput (PSW260), dwInput(PSW270) на панели, я все равно не вижу их изменения в Codesys Конфигурация-ПЛК.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Остальное удалите, что сказал
    Удалил (закомментировал).
    Хотя мне кажется:
    xOutput := xInput; (PBS256 в PSB257 транзитом через ПЛК)
    wOutput := wInput; (PSW260 в PSW262 транзитом через ПЛК)
    dwOutput := dwInput; (PSW270 в PSW274 транзитом через ПЛК)
    должно же работать.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В UMD для записи "Nativ" не нужен.
    Что такое UMD?
    Ну я так понимаю, что проблема не в Native.

  7. #7

    По умолчанию

    Может проще сделать ПЛК - slave, а панель - master? Масса плюсов будет от этого.
    Области чтения/записи наложены друг на друга.
    При обрыве связи с ПЛК панель сразу скажет об этом.
    ПЛК-конфигурация не умеет в пакетный обмен, и каждый параметр читается и пишется последовательно, при масштабном проекте на цикл обмена данными будут уходить секунды.

  8. #8

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Что такое UMD?
    В прошлой теме уже отвечал UMD - Универсал Модбас Девайс.
    Переменные инпут Кодесис и не даст изменять, вы их в ПЛК только смотреть можете, изменяются они из панели.

    Обмен так не делается, вы пытаетесь присвоить вход сразу на выход. А надо использовать промежуточные переменные, вот вам пример с диска, посмотрите как присваиваются переменные в программе для чтения и записи, ПЛК мастер.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 22.01.2022 в 10:32.

  9. #9

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Может проще сделать ПЛК - slave, а панель - master? Масса плюсов будет от этого.
    Области чтения/записи наложены друг на друга.
    При обрыве связи с ПЛК панель сразу скажет об этом.
    ПЛК-конфигурация не умеет в пакетный обмен, и каждый параметр читается и пишется последовательно, при масштабном проекте на цикл обмена данными будут уходить секунды.
    ПЛК слейв, это пройденный этап https://owen.ru/forum/showthread.php?t=35808

    При связи ПЛК мастер, панель слейв, только один недостаток, нет группового обмена, который обходится очень легко. Тут petera выкладывал примеры обмена через Стринг. Лично делал обмен где панель слейв работает не хуже панели мастер с несколькими сотнями переменных.
    А плюсов больше. Панель слейв не зависает при малейшем сбое в обмене. При передаче через Стринг переменных флоат, не надо переставлять регистры, они правильно читаются без переворота. Для передачи до 200 переменных (это почти 4 листа в конфиге), надо добавить всего 5 Стрингов. Без проблем можно решить и контроль связи, любым свободным битом в обмене..
    https://owen.ru/forum/showthread.php...l=1#post244022
    Последний раз редактировалось kondor3000; 22.01.2022 в 12:22.

  10. #10

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Может проще сделать ПЛК - slave, а панель - master?
    Это был 1-ый вариант; он рабочий. Но сейчас намеренно пробую поменять статус девайсов.

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Масса плюсов будет от этого.
    Области чтения/записи наложены друг на друга.
    При обрыве связи с ПЛК панель сразу скажет об этом.
    И там, и тут есть свои плюсы/минусы.
    Контроль связи СП (slave) с ПЛК (master) на стороне СП, думаю, можно программно решить.

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    ПЛК-конфигурация не умеет в пакетный обмен, и каждый параметр читается и пишется последовательно, при масштабном проекте на цикл обмена данными будут уходить секунды.
    Думается, в конфигурации ПЛК можно настроить обмен, например, через string input/output-модули. Вот и пакетная передача.

    Я еще до этого не дошел, но если допустимо, чтобы с одной стороны - связь между ПЛК и СП через RS-232 с СП в роли мастера, а с другой - связь между ПЛК и прочими устройствами на базе RS-485 уже с самим ПЛК в роли мастера, т.е., если ПЛК это позволяет, то почему бы и нет.
    С другой стороны, если всех, включая СП, соединить исключительно через RS-485, тогда, наверное, предпочтительней, если мастером будет выступать ПЛК.
    Последний раз редактировалось программист_с_паяльником; 22.01.2022 в 10:58.

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

Похожие темы

  1. RS485 COM2 Master Не работает функция 03
    от eigor_vl в разделе СПК1хх [М01]
    Ответов: 2
    Последнее сообщение: 06.04.2021, 12:16
  2. Ответов: 6
    Последнее сообщение: 13.03.2020, 17:22
  3. Ответов: 1
    Последнее сообщение: 26.09.2014, 00:07
  4. НА ПЛК 160 не работает модуль Modbus master
    от desperadoes в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 18.02.2013, 10:34
  5. PLC73L rs485 modbus master не работает.
    от BobbieZi в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 17.01.2012, 23:17

Ваши права

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