Показано с 1 по 10 из 10

Тема: Помогите разобраться с СПК-207 + устройство на ModBus с Trigger = RISING_EDGE

  1. #1
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    Unhappy Помогите разобраться с СПК-207 + устройство на ModBus с Trigger = RISING_EDGE

    Добрый день коллеги!

    Возникла проблема со связью из СПК207 с контроллером сервопривода (ASD-A2) по шине ModBus.
    На текущий момент все читается, записывается, КРОМЕ одного адреса. В контроллер сервопривода по адресу 0x050E записывается код внутренней программы (одной из 64) по перемещению.
    Циклическую запись по этому смещению вести категорически нельзя из-за особенностей реализации самого контроллера сервопривода - при записи сразу же начинает выполняться подпрограмма. При записи 0, к примеру, контроллер сервопривода выполняет 0 встроенную программу - поиск 0.

    Мне же необходимо в определенные моменты выдавать команды на установку необходимой мне в текущей момент "программы перемещения".
    Для исключения постоянной записи кода подпрограммы решил использовать RISING_EDGE.
    По идее, для передачи нужного значения необходимо:
    1) записать в соответствующую переменную необходимое значение
    2) в соответствующую переменную Trigger Variable необходимо выставить True

    Делаю все по такому принципу - но.. не работает.
    Если же выставить для соответствующего ModBus Slave устройства свойство xTrigger в True - то в контроллер сервопривода уходит значение 0, вне зависимости от того, что я выставил.

    Вопрос - что я делаю не так, и как исправить ситуацию?

    P.S. Готов предоставить скриншоты и прочие необходимые данные по Вашему запросу.

  2. #2
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    P.S. Готов предоставить скриншоты и прочие необходимые данные по Вашему запросу.
    Ну а что сразу не предоставляете?

    Вот мой расклад, где я однократной записью команды вызывал:

    rising_edge_commands.png

    rising_edge_2.png

    Там, правда, конвейер предусмотрен, чтобы команды одну за другой передавать. Он к теме не относится.
    Как видите, сначала в выходные переменные Cmd, Arg0 и Arg1 записывается команда с аргументами, а затем tx переводится в TRUE, после чего происходит однократная запись в три регистра слейва. Боевой код уже.
    Последний раз редактировалось Yegor; 17.01.2016 в 15:27.

  3. #3
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Ну а что сразу не предоставляете?
    Исправляюсь.

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

    Баловался руками (изменение значений переменных). Ну и в таком режиме тоже должно работать - но не работает почему-то.

    Может быть что-то не так с версиями таргета/версий библиотек modbus и какой-то редкий глюк?
    Сейчас использую

    CoDeSys 3.2 SP5
    Owen SPK2xx 03.CS.WEB версия 3.5.4.20
    ModBus COM Version: 3.4.0.0
    ModBus Master Version: 3.5.4.0
    ModBus Slave Version: 3.5.4.0

    По идее все компилируется, но не работает. Чудеса.


    P.S. Адрес и команда выдраны из софта, идущего вместе с контроллером привода. Опробовал с компа - нужные мне шаги работают. Видимо дело в кодесис/СПК/настройках
    Изображения Изображения
    • Тип файла: jpg 1.JPG (106.6 Кб, Просмотров: 47)
    • Тип файла: jpg 2.JPG (52.9 Кб, Просмотров: 35)
    Последний раз редактировалось orensnake; 17.01.2016 в 17:49.

  4. #4
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Код покажите.
    Я бы сравнил фактические запросы софта и СПК.

  5. #5
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    По умолчанию

    Ок.
    Вкратце и по порядку.
    Есть визуализация. (visu в аттаче).
    В настройках реакции на кнопку - выполнение ST кода (ButtonClick в аттаче)
    Связка переменных визуализации и переменных в GVL/PLC_PRG - (VisuLink в аттаче - используется фрейм, но это не важно)
    Описание переменных в GVL - (GVL в аттаче)

    Ну и настройки канала и его связь в предыдущем моем посте.

    Получаем, при нажатии на кнопку в форме выставляется код команды (5) и выставляем триггер в TRUE.
    Переменные в форме связаны с объявленными в GVL переменными, которые в конечном счете используются в настройках канала по модбаз.
    Изображения Изображения

  6. #6
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Код покажите.
    Я бы сравнил фактические запросы софта и СПК.
    Сегодня, к сожалению, нечем промониторить. Смогу только завтра. Проснифил запрос из ПО, используемого для настройки и управления контроллером сервопривода, используя Device Monitoring Studio. Выделил для себя передаваемую по modbus команду:

    Код:
    Packet 58384: MODBUS Request (packet size: 13, data size: 9), 02.01.2016 23:14:48.400 +0.0
    
    Mode: RTU
    Address: 1 (Slave)
    Function: 16 (Write Multiple Registers)
    Starting Address: 1294
    Number of Registers: 2
    Parsed As:
    Registers 41294-41295:
    Register0: 5
    Register1: 0
    CRC:23922 (OK)
    То есть
    функция 16, адрес - 1294=0x050e, 2 регистра со значениями 5 и 0.

    Собственно все то же самое и реализую. Завтра буду снифить трафик с СПК до контроллера сервопривода.
    Последний раз редактировалось orensnake; 17.01.2016 в 20:34.

  7. #7
    Пользователь
    Регистрация
    09.10.2014
    Адрес
    Киров
    Сообщений
    735

    По умолчанию

    Если не секрет, каким софтом сниффили?

  8. #8
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от SA104 Посмотреть сообщение
    Если не секрет, каким софтом сниффили?
    Device Monitoring Studio - http://freeserialanalyzer.com/features
    Триальный на 21 день. Но в принципе нормально обрабатывает пакеты, да и расшифровка налету.

  9. #9
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Когда будете снифить, попробуйте без визуализации лучше. Убедитесь, что нигде в переменные Servo1WR и Servo1Cmd не происходит запись (в т.ч. отцепите их от фрейма), потом подготовьте в них значения для записи и запишите по Ctrl+F7.

  10. #10
    Пользователь
    Регистрация
    17.01.2016
    Адрес
    Оренбург
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Когда будете снифить, попробуйте без визуализации лучше. Убедитесь, что нигде в переменные Servo1WR и Servo1Cmd не происходит запись (в т.ч. отцепите их от фрейма), потом подготовьте в них значения для записи и запишите по Ctrl+F7.
    Создан новый проект.

    Код:
    PROGRAM PLC_PRG
    VAR
    	ServoWR 		: BOOL := FALSE;
    	ServoCMD 		: WORD;
    	wZero 			: WORD := 0;
    	
    	ReadedCMD 		: WORD;
    	
    	tmp				: WORD;
    	tmpCMD			: WORD;
    	tmpWR			: BOOL;
    END_VAR
    
    
    tmp := ReadedCMD;
    
    ServoCMD := tmpCMD;
    ServoWR := tmpWR;
    Добавил соотнесение
    sootnesenie.JPG

    Извиняюсь, удалил часть сообщения.
    Накосячил с номером регистра - сейчас поправил и с тестового проекта все работает (и чтение, и запись, и устройство отрабатывает). О чудо! Осталось понять что не работало с основном и почему.

    Хм. заинтересовала настройка
    hm.JPG

    Указано "Использовать родительскую настройку". Соответственно берется из мастера. У мастера тоже "Использовать родительскую настройку". Соответственно ссылается на ком порт - но там ничего не настраивается.


    Поставил в основном проекте "Включено 2 (всегда в задаче цикла шины)" и ... заработало и с визуализациями.


    Всем спасибо, особенно Yegor за желание помочь разобраться.
    Тему можно закрывать.
    Последний раз редактировалось orensnake; 18.01.2016 в 07:24.

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 11.09.2015, 17:32
  2. СПК 207 + ПЛК 100 (Modbus RS 232)
    от cen_turion в разделе СПК2хх
    Ответов: 3
    Последнее сообщение: 23.01.2015, 15:43
  3. СПК 207 WEB и отчет, Отчет на ПК, СПК и OPC
    от Пьер в разделе СПК2хх
    Ответов: 9
    Последнее сообщение: 23.01.2015, 11:04
  4. СПК 207 + Master SCADA по Modbus через 485-й интерфейс
    от Александр Баранов в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 19.12.2012, 12:09
  5. помогите разобраться с modbus
    от Amarok в разделе Помощь Разработчикам
    Ответов: 12
    Последнее сообщение: 22.10.2009, 17:09

Метки этой темы

Ваши права

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