Страница 194 из 1043 ПерваяПервая ... 94144184192193194195196204244294694 ... ПоследняяПоследняя
Показано с 1,931 по 1,940 из 10426

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #1931
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    1.
    Размер читаемой структуры 6 x 5 байт.
    В подструктуре есть слово (val:int)
    => адреса этих слов - четный,нечетный, четный...

    2.
    Принимающая железка не может разместить слово по нечетному адресу. (Не Овен и даже не КДС, а именно железка) => будет выравнивание.

    3.
    Почему спросил - кто слейв ?
    В предположении что слейв - ПЛК и имеет структуру:
    слейв{
    h1 : byte
    m1 : byte
    val1 : int
    rele1 : byte
    h2 : byte
    m2 : byte
    val2 : int
    rele2 : byte
    ...
    }

    В таком случае неявное выравнивание в самом слейве было бы таково :
    слейв{
    h1 : byte
    m1 : byte
    val1 : int
    rele1 : byte
    x1 : byte
    h2 : byte
    m2 : byte
    val2 : int
    rele2 : byte
    x2 : byte
    ...
    }

    Не знаю что такое "захардкодить". Если объявить VAR как выше в слейве и попытаться прочитать туда - неполучицца. По факту будет как с неявным (выше). Вы просто не сможете разместить данные как в посылке. Разве только:

    h1 : byte
    m1 : byte
    val1_lo : byte
    val1_hi : byte

    rele1 : byte
    ...

    А если сделаете :
    Код:
    p : pointer to int;
    
    p := adr(val?_lo)
    то каждое второе p^ , в любую сторону, приведет к би-и-п. "Потеря связи.."

    Тоже самое c
    Код:
    p : pointer to struct{h,m:byte;  val:int;  rele:byte}
    p := adr(h?)
    p^ туда/сюда целиком - нормуль.
    Но p^.val - приведет к тому же что выше

    +
    если будет фрагмент типа
    Код:
    ...
    h6 : byte
    m6 : byte
    val6_lo : byte
    val6_hi : byte
    rele6 : byte
    END_VAR
    где-нить в глобал, то можно бибикнуть при любом обращении даже к p^ (:= ADR(h6)), т.к. присутствует выход за пределы доступной памяти.


    4.
    В КДС размер любой структуры/фб - кратен 4. Отсюда :
    STRUCT A{
    h : byte
    m : byte
    val : int
    rele : byte
    }
    равносильно
    STRUCT A{
    h : byte
    m : byte
    val : int
    rele : byte
    x : array[1..3] of byte
    }

    => ... выводы по адресации делаем сами. И с учетом массива структур

    Нету никаких "как ему за хочется". Все рассчитываемо если есть понимание механизма выравнивания

    PS
    на море .. на море ... на море ...

  2. #1932

    По умолчанию

    большое спасибо за пояснения. Я понимаю что нету как ему захочется. Я имел ввиду, что повлиять на это мы не можем и это нормально. Захардкодить я имел ввиду жестко в ручную писать переписывание из посылки в структуру каждой переменной. В конце концов проект этот пишется раз и на долгое время под массовый шкафчик. Так что лучше прописать все жестко. Займет больше строк кода и выглядеть будет не так красиво, зато надежно.
    Чтобы понять рекурсию нужно понять рекурсию

  3. #1933

    По умолчанию

    Возможно - ли как - то отключать измерение на несколько секунд с модуля ввода в программе на ПЛК, после достижения необходимого значения?

  4. #1934

    По умолчанию

    Цитата Сообщение от myles Посмотреть сообщение
    Возможно - ли как - то отключать измерение на несколько секунд с модуля ввода в программе на ПЛК, после достижения необходимого значения?
    можно остановить опрос модуля ввода. Для этого в модуле Universal Modbus Device Есть в самом верху пункт (*Command (0xFF - Start)*). Как им пользоваться написано в руководстве по программированию ПЛК на 85 странице в разделе Universal Modbus Device.
    Чтобы понять рекурсию нужно понять рекурсию

  5. #1935
    Пользователь
    Регистрация
    30.11.2012
    Адрес
    40RUS
    Сообщений
    316

    По умолчанию

    Подскажите, пожалуйста: в проекте имеется модуль modbus-slave-TCP, на компьютере запущен OPC-сервер, опрашивающий контроллер. Если я кратковременно (не более примерно 5-ти секунд) отключаю физически разъём от ethenet-а контроллера, восстановление опроса происходит быстро, однако если продержать разрыв чуть дольше восстановление связи с OPC-сервером происходит оочень долго, минут 5-10, несмотря на то что контроллер уже давно "пингуется". Если физически перезагрузить контроллер связь появляется сразу. Подскажите, можно ли настроить контроллер, чтобы связь восстанавливалась как только восстанавливается ethrnet-соединение? Подозреваю что дело именно в контроллере, т.к. помогает его физическая перезагрузка...

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

    По умолчанию

    Подскажите по взаимодействию контроллера с панелью ИП320.
    Например мне необходимо real переменную изменять. Учитывая, что переменная без знаков после запятой то все просто real_to_int - изменили, обратно int_to_real
    А если мне необходим 10-тичный знак . Real*10 - real_to_int - отправить в панель с указанием показывать 1 знак после запятой. Изменить и вернуть обратно int_to_real /10

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

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Подскажите по взаимодействию контроллера с панелью ИП320.
    Например мне необходимо real переменную изменять. Учитывая, что переменная без знаков после запятой то все просто real_to_int - изменили, обратно int_to_real
    А если мне необходим 10-тичный знак . Real*10 - real_to_int - отправить в панель с указанием показывать 1 знак после запятой. Изменить и вернуть обратно int_to_real /10

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

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

    По умолчанию

    capzap пробовал и читаю, но не совсем понял, как панель работает со знаком после запятой. Это только отображение, или таким образом можно дать ей целое число и просто указывать количество знаков.
    Панели пока под руками нет.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    capzap пробовал и читаю, но не совсем понял, как панель работает со знаком после запятой. Это только отображение, или таким образом можно дать ей целое число и просто указывать количество знаков.
    Панели пока под руками нет.
    да, чтоб не возиться с реалом, его умножают на столько порядков, которое требуется для количества знаков после запятой, далее переводят в ИНТ и отправляют в панель, в настройках регистра панели задают количество знаков

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

    По умолчанию

    capzap спасибо, как раз хотел избавиться от real в панели, всего один параметр, который мне необходимо изменять с десятыми долями.

Страница 194 из 1043 ПерваяПервая ... 94144184192193194195196204244294694 ... ПоследняяПоследняя

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

Ваши права

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