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

Тема: Состояние входа ПЛК150 через MudBas

  1. #1

    По умолчанию Состояние входа ПЛК150 через MudBas

    Изучил примеры GSM, Lectus, ModBus.
    Понял как записать-считать переменую по Modbus, через удаленный канал. А вот как передать состояние дискретного или аналогового входа ПЛК по ModBus через GSM, никак не пойму.
    Хоть намекните.

  2. #2
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    так ведь состояние дискретного или аналогового входа - это по большому счету тоже переменная. ее и передавайте.
    или я не прав?

    только со значениями типа Real будьте внимательны.

  3. #3

    По умолчанию так это понятно

    Только четвертый день мучаю CoDeSys, никак не вьеду как это прописать.
    Есть переменная с адресом по дискретному входу ПЛК.
    Есть переменная входа модбас. Как между собой их срастить

  4. #4
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Хочу уточнить. Какой у вас ПЛК?
    И чем он будет в сети Modbus (master или slave)?

  5. #5

    По умолчанию ПЛК150 slave

    ПЛК150-ИМ с прошивкой 2.10.5
    В сети мадбаса он slave. Lectus его опрашивает через GSM-модем.
    В обшем задача построить диспетчеризацию на несколько ПЛК. Их опрашивает лектус, ноги лектуса привинчены к скада энтек. На Деконт-182 (GSM-windecont-энтек) работает без вопросов. Хотим перейти на овеновские приборы. Пробовали ПЛК цеплять по проводам, подымали OPC-CoDeSys далее энтек, здесь все работает пучком. А вот передать состояние входов ПЛК по GSM, мозгов нехватает.

  6. #6
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Вот небольшой примерчик DIN_TO_MODBUS.rar.
    Скажу сразу, что с модемами не работал, но сам принцип должен быть вам понятен. ПЛК является слэйвом, по GSM его будет опрашивать мастер и получать нужные данные.

  7. #7

    По умолчанию огромнейшее спасибо

    это действительно работатет!!!
    хотя в режиме симуляции не пашет.
    а вот в натуре через модем, как здрасте сказать.
    благодарю. ну а дальше сам. главное толчок!!!
    или пинок.

  8. #8
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    В режиме симуляции, конечно же, не будет работать!
    И еще. В принципе все значения дискретных входов можно упаковать в один регистр Modbus, например:

    mb_var_1.0:=din_1;
    mb_var_1.1:=din_2;

    Таким образом в одну переменную вы можете поместить до 16 дискретных сигналов.

    Успехов!

  9. #9

    По умолчанию я сделал несколько по иному

    Меня не устроил переназначение переменой дискрета типа BOOL, в переменную WORD. Скада видит ее как аналог, что не есть хорошо. Поэтому в мадбас добавил подэлемент 8 bits, там 8 переменных типа BOOL в общем то-что надо. Можно привязать все шесть дискретных входов ПЛК. Завтра буду мучать аналоги. Всем удачи. И мне тоже

  10. #10
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Наверное использование 8 bit в вашем случае будет наиболее удобно.
    Я своей целью видел задать вам направление, куда двигаться, и не претендовал на 100% верное решение Так что теперь вам и карты в руки
    По поводу аналогов - можно попробовать переменную Float в Modbus.
    Если не получится, то как вариант, можно умножать аналоговое значение на 10 или на 100, передавать в СКАДу как WORD, а там уж делить на 10 или на 100 соответственно. Пробуйте, дерзайте!

Ваши права

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