Отправка команд

Просмотр 15 сообщений - с 16 по 30 (из 35 всего)
  • Автор
    Записи
  • #41549
    manjey73
    Участник

    Домой доберусь, продублирую. Делал универсальный скрипт для выходной формулы.

    #41553
    Mikhail
    Модератор

    В Rapid SCADA 6 при настройке Modbus, если у Вас регистр уже указан на чтение, не нужно создавать в шаблоне дополнительную команду для его записи. Это оставлено для совместимости со старыми настройками и для редких случаев, когда читать регистр не нужно, а нужно только записывать.

    #41563
    manjey73
    Участник
    public double CheckComm(double min, double max, double mult, string str = "" )
    {
    if (Cmd < min || Cmd > max) throw new Exception($"Значение должно быть в пределах {min} - {max} {str}");
    return Cmd*mult;
    }
    
    public double CheckComm1(double min, double max, string str = "" )
    {
    if (Cmd < min || Cmd > max) throw new Exception($"Значение должно быть в пределах {min} - {max} {str}");
    return Cmd;
    }

    в выходной формуле CheckComm(16, 32, 10, "градусов") — вариант с множителем

    #41568
    baur
    Участник

    if (Cmd < min || Cmd > max) throw new Exception($»Значение должно быть в пределах {min} — {max} {str}»);
    return Cmd;

    Спасибо за формулу 👍, как раз хотел спросить про множитель. У RS много недокументированных возможностей.

    #41569
    manjey73
    Участник

    множитель это нормально, вы же пишите в канале Cnl/10 если получаете из ПЛК умноженное на 10, например в формате int.

    Соответственно если вы подаете команду, то ее надо умножить на 10 — Cmd*10

    Другой вопрос, что это бы, да в «мозги» драйвера Modbus. Я в свои добавлял там, где требуется. Это чуть-чуть сокращает время разработки.

    #41570
    baur
    Участник

    не нужно создавать в шаблоне дополнительную команду

    Изначально тоже хотел сразу создать канал in\out но не сработал

    в документации функция чтения 0х03 функция записи 0х10

    как можно одновременно задать — чтение: Modbus-функция 0х03, запись: Modbus-функция 0х10

    #41571
    baur
    Участник

    Соответственно если вы подаете команду, то ее надо умножить на 10 — Cmd*10

    да как раз это было и нужно, теперь оператор задает точно 123.4 а не 1234
    спасибо

    #41572
    manjey73
    Участник

    Функция 10 для записи будет включена автоматом, если у вас 4 или 8 байт тип данных.
    а если все 2 байта но писать надо 10-й функцией, то да, придется команды отдельно делать.

    #41573
    baur
    Участник

    У меня всего 2 байта, поэтому объединить канал и команду не получается.
    Для записи 2 байт приходится делать отдельную команду — это временно или всегда так будет?

    к сожалению, для проверки не нашел регистра на 4–8 байт для записи.

    #41575
    manjey73
    Участник

    ну это надо, чтобы Михаил доработал видимо драйвер, чтобы даже в 2-х байтовых вариантах можно было поставить галочку, что писать их надо множественной командой.

    я тоже встречал устройства, где запись всегда функцией 10

    #41584
    Mikhail
    Модератор

    Записал пожелание по поводу опции.
    Что это за устройство такое?

    #41595
    baur
    Участник

    Что это за устройство такое?

    ОВЕН TRM-202

    #41596
    manjey73
    Участник

    просто когда в устройствах есть и 4-х байтные переменные часто производитель не заморачивается выбором типа функции записи, тупо 0x10 на всё и все дела.
    Не только Овен, и другие попадались.

    #41597
    baur
    Участник

    Можно ли отправить команду без подтверждения в среде Mimic, например через тумблер

    #41598
    manjey73
    Участник

    можно. там чуть по другому настройки вроде, но точно можно.
    Сделайте простой проект в старом редакторе и конвертируйте в мимик и посмотрите.
    ну это если без ошибок перенесет 🙂

Просмотр 15 сообщений - с 16 по 30 (из 35 всего)
  • Для ответа в этой теме необходимо авторизоваться.