Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: Modbus опрос ПЛК

  1. #21

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    и это тоже возможно, то о чем я написал в первую очередь, ну раз это прпустили повторю подробнее, открываем документ http://www.kipshop.ru/CoDeSys/steps/...figuration.pdf, последний абзац на 13 странице и рисунок 1.6 на 14 странице, канал станет с обычным названием переменной, к котрой можно обращаться через точку чтоб считать или записать разряд
    Я в 11 посту писал об этом.Через переменную не вариант.т.к. Мне нужно одновременно писать и читать ее. Смотрите что получается, через opc я обратился к переменной, записал значение, присвоил это значение через точку переменной.Например Auto:bool . А в переменная в разделе modbus tcp имеет имя Auto_to_scada AT %QW8.0.1. Т.о. Auto:=Auto_to_scada.1;
    Все прекрасно, на SCADA нажал кнопку Auto, в плк переменная auto приняла значение TRUE.Далее выключаем компьютер со SCADA, плк при этом работает.После загрузки SCADA указатель режима работы в SCADA отображает False, потому что SCADA не знает о том, что переменная Auto была переведена в true(до ее выключения).Что бы такого неопределенного состояния не возникало нужно считать переменную с плк в SCADA. Каким образом?
    Auto_to_scada.1:=Auto;- уже не катит.(Поэтому как вариант я записал переменную auto в регистр byte изменив 1й бит,т.е. ушел от еще одной переменной в плк(без присвоения) и сэкономил память.Далее считал 2байта через opc.Ну а в SCADA через скрипт C# расшифровал каждый бит регистра Word. Если что не так сделал поправьте, может проще как можно сделать.

  2. #22
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    Цитата Сообщение от sink3d Посмотреть сообщение
    Я в 11 посту писал об этом.Через переменную не вариант.т.к. Мне нужно одновременно писать и читать ее. Смотрите что получается, через opc я обратился к переменной, записал значение, присвоил это значение через точку переменной.Например Auto:bool . А в переменная в разделе modbus tcp имеет имя Auto_to_scada AT %QW8.0.1. Т.о. Auto:=Auto_to_scada.1;
    Все прекрасно, на SCADA нажал кнопку Auto, в плк переменная auto приняла значение TRUE.Далее выключаем компьютер со SCADA, плк при этом работает.После загрузки SCADA указатель режима работы в SCADA отображает False, потому что SCADA не знает о том, что переменная Auto была переведена в true(до ее выключения).Что бы такого неопределенного состояния не возникало нужно считать переменную с плк в SCADA. Каким образом?
    Auto_to_scada.1:=Auto;- уже не катит.(Поэтому как вариант я записал переменную auto в регистр byte изменив 1й бит,т.е. ушел от еще одной переменной в плк(без присвоения) и сэкономил память.Далее считал 2байта через opc.Ну а в SCADA через скрипт C# расшифровал каждый бит регистра Word. Если что не так сделал поправьте, может проще как можно сделать.
    Все равно не уловил, чего Вы пытаетесь добиться. У меня нажатие управляющей кнопки записывается по отдельному каналу, а отображение этого состояния принимается из плк по другому каналу, по этому при включении скады я всегда вижу реальное состояние плк. И таких дискретных сигналов может быть сколько угодно, я их пакую в двойное слово, а в визуализации распаковываю

  3. #23

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Все равно не уловил, чего Вы пытаетесь добиться. У меня нажатие управляющей кнопки записывается по отдельному каналу, а отображение этого состояния принимается из плк по другому каналу, по этому при включении скады я всегда вижу реальное состояние плк. И таких дискретных сигналов может быть сколько угодно, я их пакую в двойное слово, а в визуализации распаковываю
    Т.е. у вас получается Dword- на запись, Dword- на чтение.Ну с чтением понятно, а вот с записью не очень. Если нужно изменить один бит , например пустить двигатель, вы передаете 32бита?Я правильно понял?

  4. #24
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    да, а Вы думаете что затраты на передачу одно бита по модбас существенно отличаться от передачи двух регистров?
    Зато при таком раскладе, я передаю 32 состояния каких нибудь дискретных сигналов за один раз, а при передаче конкретного бита, вдруг в следующее мгновение необходимо будет передать еще битовый сигнал, начнет появляться очередь на отправку, начнет ощутимое торможение визуализации и т.п.
    естественно , я забочусь о том, чтоб сигналы не изменили реальный сигнал на исполнительный механизм, если управляющая команда его некасается
    Последний раз редактировалось capzap; 07.09.2012 в 13:14.

  5. #25

    По умолчанию

    А Dword в котором содержатся биты для записи читаете scada-ой ?

  6. #26
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

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

  7. #27
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    нет, такого опыта нет

  8. #28

    По умолчанию

    у меня следующая ситуация - из программы передаю в лектус переменные (4 byte DWORD). В лектусе задаю адрес переменной и тип данных Double Word, но значение отображается совсем не то что в программе, почему так? С word все нормально проходит

  9. #29

    По умолчанию

    Проблема такая же как в теме http://www.owen.ru/forum/showthread.php?t=11804, только так и не понял как решить ее.. Там написано что необходимо указать другой порядок, как это сделать? Адреса переменной какие будут?
    Последний раз редактировалось Igor.m; 22.10.2013 в 08:30.

  10. #30
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,688

    По умолчанию

    Стандартная проблемма с пресловутым выравниванием.
    Переменные типа DWORD прописываете в конце списка WORD регистров , при этом DWORD прописывать после четного WORD регистра модбас слэйв.

Страница 3 из 3 ПерваяПервая 123

Ваши права

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