Страница 12 из 29 ПерваяПервая ... 2101112131422 ... ПоследняяПоследняя
Показано с 111 по 120 из 289

Тема: Индикатор RS485 - СМИ2

  1. #111

    По умолчанию

    [00][10][03][E9][00][0C][18] (*заголовок со всеми вытекающими*)
    [00][00][00][00][00][00][00][23] (*запись в прибор №1*)
    [00][00][00][00][00][00][00][24] (*запись в прибор №2*)
    [00][00][00][00][00][00][00][25] (*запись в прибор №3*)
    [4A][BC] (*контрольная сумма*)
    дело в том, что я понятия не имею как контроллер раскладывает байты физически, на своем аппаратном уровне.
    у меня есть карта памяти, для СМИ2 она может выглядеть как-то так:
    ;Direction - направление (read & write)
    ;Type - тип (битовые или регистровые)
    ;Baudrate - скорость слэйва
    ;Address - адрес слэйва в сети RS-485
    ;var(0-n) - адрес#тип#символьное имя#комментарий

    [Request0]
    Direction=read
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=0#long#dev#название прибора
    var1=2#long#ver#версия ПО прибора
    [Request1]
    Direction=read
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=d#int#n.Err#код сетевой ошибки
    var1=e#int#Status#Байт статуса
    [Request2]
    Direction=read
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=24#long#O.String#4 байта состояний сементов индикатора
    var1=26#int#O.Ind.Mode#проверка состояния Мигает/Нет
    [Request3]
    Direction=read/write
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=4#int#bPS#Скорость обмена
    var1=5#int#len#Длина слова данных
    var2=6#int#Parity#контроль четности
    var3=7#int#stopBit#количество стоповых бит
    var4=8#int#rS.dL#задержка ответа прибора
    var5=9#int#t.out#сетевой тайм-аут
    var6=a#int#Addr#сетевой адрес
    var7=b#int#Protocol#тип протокола
    var8=c#int#A.Len#Длина сетевого адреса протокола ОВЕН
    [Request4]
    Direction=read/write
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=f#int#Apply#Применение настроек
    var1=10#int#Ad.Ad#Код пользовательской функции
    var2=11#int#typ.data#Тип переменной
    var3=12#int#dP#положение десяттичной точки
    var4=13#int#PeriodFlashing#период мигания
    [Request5]
    Direction=read/write
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=19#int#val.Int#переменная INT
    var1=1a#int#val.Word#переменная WORD
    var2=1b#long#val.Float#переменная Float
    var3=1d#long#val.String1#переменная String1
    var4=1f#long#val.String2#переменная String2
    var5=21#long#val.Portret#переменная Portret
    var6=23#int#Ind.Mode#установка Мигает/Нет
    [Request6]
    Direction=read/write
    Type=reg
    Baudrate=9600
    Address=26
    Period=100
    var0=27#int#OWEN#временный перевод на протокол ОВЕН
    а может и как-то иначе.
    понимаете, как программист я избавлен от лишних подробностей протокола.
    у меня есть необходимый минимум
    адрес прибора, адрес регистра в этом приборе по этому адресу, тип переменной этого регистра и что сделать. я могу выбрать читать его или писать в него. все остальное делает контроллер. он сам выбирает тип функции. и если я указываю "групповые запросы" - он будет делать это групповыми функциями и т.д. и т.п.

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

    пробовал отправлять по адресу нуль, в регистры 1000+адрес прибора, целое - не получилось.

    что я делаю не так?

  2. #112
    Ельцов Андрей
    Гость

    По умолчанию

    Вопрос понял. Правда не понял того, как работает Ваша программа.
    Вам необходимо:
    по адресу "0"
    Команде 16-dec (10-hex) (групповая запись)
    Начиная с регистра 1000+"адрес прибора" В моем случае 1001dec(3e9hex)
    записать 4*3=12 регистров (4-это 8 байт, 3-это 3 прибора).
    4-регистра делятся таким образом: 1,2 - для переменных типа string и портрет; 3,4 для переменных типа float, word,int.
    В моем случае (и в вашем) 1-е три регистра будут =0, 4-й будет равен тому числу, которое Вы хотите записать.

    Так понятнее описал?
    P.S. А что за ПО и оборудование Вы используете?

  3. #113

    По умолчанию

    P.S. А что за ПО и оборудование Вы используете?
    Сегнетикс. SMH-2Gi

    Так понятнее описал?
    благодарю!
    попробовал, получилось.

    ;Direction - направление (read & write)
    ;Type - тип (битовые или регистровые)
    ;Baudrate - скорость слэйва
    ;Address - адрес слэйва в сети RS-485
    ;var(0-n) - адрес#тип#символьное имя#комментарий

    [Request0]
    Direction=read/write
    Type=reg
    Baudrate=9600
    Address=0
    Period=100
    var0=402#int#26-1#
    var1=403#int#26-2#
    var2=404#int#26-3#
    var3=405#int#26-4#
    var4=406#int#27-1#
    var5=407#int#27-2#
    var6=408#int#27-3#
    var7=409#int#27-4#
    var8=40a#int#28-1#
    var9=40b#int#28-2#
    var10=40c#int#28-3#
    var11=40d#int#28-4#
    вот как выглядит карта.
    запись идет в переменные 26-4, 27-4 и 28-4

  4. #114

    По умолчанию

    но в моем случае это не ускорило вывод. :-(

    и еще, не смог понять, каким образом записать переменную в ее-память прибора?
    например, хочу выставить один раз dP и боле не трогать.
    пишу в соотв.регистр двойку, затем в регистр Apply пишу 0x81. снимаю питание - dP как был так и остался нулём.

  5. #115
    Ельцов Андрей
    Гость

    По умолчанию

    Странно, что скорость не увеличилась.
    Можете определить почему? Тормозят СМИ2 или долго думает контроллер?
    Что касается настроек с фиксированием во flash, то все должно работать корректно.
    Вы конфигуратором СМИ2 не пользуетесь? Почему?

  6. #116

    По умолчанию

    Можете определить почему? Тормозят СМИ2 или долго думает контроллер?
    похоже увеличилось кол-во запросов.
    пришлось переделать карту для МВ110-8А так чтоб опрос всех регистров прошел одним файлом, а вот со СМИ2 так не получается. т.к. приходится выставлять dP...
    вопщем субъективно широковещательная запись тормозит процесс при наличии в сети иных приёмников и передатчиков.

  7. #117

    По умолчанию

    Вы конфигуратором СМИ2 не пользуетесь? Почему?
    как сказать, для начальной инициализации я его поюзал. хорошо первым делом успел выставить адрес и только потом поменять протокол - и СМИ тутже отвалился от конфигуратора, попытки установления связи ниче не дали и я не стал искать правды дальше ...
    думаю следущий релиз софтинки уже будет испрален...

  8. #118
    Ельцов Андрей
    Гость

    По умолчанию

    СМИ2 у Вас отвалился, т.к. он работает по протоколу Modbus. Конфигуратор этого протокола не знает.
    Переведите СМИ2 в настройки по умолчанию. И делайте с ним все что хотите.
    dp каждый раз отправлять не нужно. Вот и трафик сэкономите

  9. #119

    По умолчанию

    ok. разобрался. благодарю!

    но теперь есть вопросец относительно широковещательной посылки на нулевой адрес и реакции на него со стороны МВ110-8А
    вопрос возник из-за того, что мастер получает много ошибок по этому запросу. и похоже из-за этого время отклика сми2 шипко тормозится.

  10. #120
    Ельцов Андрей
    Гость

    По умолчанию

    А Вы можете прислать лог обмена по сети?
    И еще. Ведь СМИ2 не отвечают на широковещательную команду и Вы можете таймаут ответа поставить меньше секунды. Тогда ПЛК будет слать посылки чаще.

Страница 12 из 29 ПерваяПервая ... 2101112131422 ... ПоследняяПоследняя

Ваши права

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