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

Тема: UNM

  1. #1
    Пользователь Аватар для Fudz
    Регистрация
    03.04.2012
    Адрес
    Харьков
    Сообщений
    63

    По умолчанию UNM

    Здравствуйте не могли бы вы мне помочь освоить UNM библиотеку. А конкретно теорию я как бы знаю хотелось бы примерчик самый элементарный например опрос дискретного модуля любого регистра и получение ответа.
    Последний раз редактировалось Fudz; 27.09.2012 в 11:12.

  2. #2
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Пример есть, надо лишь поискать

    http://www.owen.ru/forum/showthread.php?t=551&page=7

  3. #3
    Пользователь Аватар для Fudz
    Регистрация
    03.04.2012
    Адрес
    Харьков
    Сообщений
    63

    По умолчанию

    Да спс посмотрел тяжеловато разобраться. Попытался написать элементарную отправку запроса пример ниже:

    IF OUT1 <> 1 THEN
    LockDevice(0);
    END_IF;

    IF SWICH THEN
    OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
    END_IF;

    Но при запуске программы и включении Swich ПЛК автоматически перезагружается. В чем проблема подскажите пожалуйста.

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

    По умолчанию

    Цитата Сообщение от Fudz Посмотреть сообщение
    Да спс посмотрел тяжеловато разобраться. Попытался написать элементарную отправку запроса пример ниже:

    IF OUT1 <> 1 THEN
    LockDevice(0);
    END_IF;

    IF SWICH THEN
    OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
    END_IF;

    Но при запуске программы и включении Swich ПЛК автоматически перезагружается. В чем проблема подскажите пожалуйста.
    Через знак доллара передаются данные в шестнадцатиричной системе, надеюсь контрольная сумма соответствует, а поповоду перегрузки, попробуйте в нутри тела условия переменной присвоить фальш, зачем каждый цикл посылать запросы, достаточно одного

  5. #5
    Пользователь Аватар для Fudz
    Регистрация
    03.04.2012
    Адрес
    Харьков
    Сообщений
    63

    По умолчанию

    да я знаю что все в 16 системе crc посчитал по калькулятору. Сделал как вы сказали все ровно что-то не то:

    IF OUT1 <> 1 THEN
    LockDevice(0);
    END_IF;

    IF SWICH THEN
    OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
    IF SWICH=TRUE THEN SWICH:=FALSE; END_IF;
    END_IF;

  6. #6

  7. #7
    Пользователь Аватар для Fudz
    Регистрация
    03.04.2012
    Адрес
    Харьков
    Сообщений
    63

    По умолчанию

    может у меня запрос не правильный. ПЛК110 и один дискретный модуль.
    $10 = 16 dec адрес дискретного модуля
    $03 = 03 dec read holding registers
    дальше адрес и количество регистров и CRC

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

    По умолчанию

    из-за ошибок в запросах, перегрузки плк не бывает.
    В приведенном Вами примере кроме SWICH, такая же картина и с OUT1, постоянно пытаетесь занять порт, которому и одного раза хватает
    Ну и как бы надо устранять избыточность кода, можно и так написать
    IF SWICH THEN
    OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
    SWICH:=FALSE;
    END_IF;
    главное чтоб SWICH в программе один раз в ИСТИНУ ставили, а то теряется смысл в присвоении ей ФАЛЬШИ

    ЗЫ Вы же просили пример и почему им не воспользуетесь, не составите свой код аналогично?
    Последний раз редактировалось capzap; 28.09.2012 в 22:29.

Ваши права

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