Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 36

Тема: Синхронизация времени

  1. #1
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    Question Синхронизация времени

    Как выполнить синхронизацию времени ПЛК-100 с ПК Win7 ???

    Необходимо на плк время выставлять такое же как на ПК.

  2. #2

    По умолчанию

    Здравствуйте!
    Такой возможности нет, ПЛК 100 не поддерживает системную библиотеку SysLibRTC.lib

  3. #3
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    А если через определенные интервалы времени (10мин. например) производить установку времени в ПЛК по измеренному времени в opc-клиенте masterSCADA и переданному как обычная переменная (кол-во сек. с начала дня).
    Возможно ли добиться точности хотяб в +-1с?
    Как оценить время передачи переменной до контроллера?

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

    По умолчанию

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

  5. #5
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    напишите демон слейв устройства, который будет содержать три регистра, для часов, минут и секунд. Демон каждую секунду меняет значения регистров, а ПЛК когда нужно берет инфу с этих регистров
    Я не волшебник, только учусь) поэтому не очень понимаю жаргон. что вы имели ввиду под "демон слейв устройства"?

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

    По умолчанию

    демон это программа работающая в фоновом режиме, определение не точное но смысл должен быть понятен. Вот выкладываю для мастера МодбасТСР слейв с адресом 2. Регистр №0 - часы, №1 - минуты и №3 - секунды.
    import java.net.*
    import java.util.*
    import net.wimpi.modbus.*
    import net.wimpi.modbus.net.*
    import net.wimpi.modbus.io.*
    import net.wimpi.modbus.msg.*
    import net.wimpi.modbus.util.*
    import net.wimpi.modbus.procimg.*
    cal = new GregorianCalendar();
    spi = new SimpleProcessImage();
    def getSiPrIm() { return spi; }
    def getGreg() { return cal; }
    def mySlave() {
    ModbusTCPListener listener = null;
    getSiPrIm().addRegister(new SimpleRegister(0));
    getSiPrIm().addRegister(new SimpleRegister(0));
    getSiPrIm().addRegister(new SimpleRegister(0));
    ModbusCoupler.getReference().setProcessImage(spi);
    ModbusCoupler.getReference().setMaster(false);
    ModbusCoupler.getReference().setUnitID(2);
    listener = new ModbusTCPListener(3);
    listener.setPort(Modbus.DEFAULT_PORT);
    listener.start();
    println listener.isListening()
    }
    tScript = new Thread(new Runnable() {
    public void run() {
    mySlave()
    }
    });
    tScript.start();
    tScript1 = new Thread(new Runnable() {
    public void run() {
    while(true) {
    try{Thread.sleep(1000)}catch(Exception e){}
    getGreg().setTime(new java.util.Date())
    getSiPrIm().getRegister(0).setValue(getGreg().get( Calendar.HOUR_OF_DAY))
    getSiPrIm().getRegister(1).setValue(getGreg().get( Calendar.MINUTE))
    getSiPrIm().getRegister(2).setValue(getGreg().get( Calendar.SECOND))
    }
    }
    });
    tScript1.start();

  7. #7
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Со стороны плк понял так:
    в конфигурации создать modbus(slave) с адресом2 в нем перем. типа 2byte

    Со стороны ПК ничего не понял.(
    Код написан на Java? какой компилятор нужен?
    Изображения Изображения

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

    По умолчанию

    в том варианте что я предложил, ПЛК в качестве мастера, вечером выложу более оптимальный вариант, когда плк в роли слейва, а прога на пк мастер, её поставить в список задачь винды(линукса) запускающихся по расписанию. На плк в слейве должно быть четыре регистра, это часы,минуты, секунды и некий флаг, по которому в программе плк устанавливать время. Мастер выдал обновленное время и флаг в положение true, после завершил свою работу, до следущего времени по расписанию. А в ПЛК, когда условие выполняется IF flag=TRUE THEN выполнить код, взяв регистры, в которых лежит время и сбросить флаг. Вообщем как то так
    Да, если с ПК связь последовательная, то нужны настройки порта
    Последний раз редактировалось capzap; 08.09.2011 в 14:29.

  9. #9
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Да, если с ПК связь последовательная, то нужны настройки порта
    связь Ethernet через коммутатор.Настройка нужна только в ПЛК или на ПК в коде тоже?

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

    По умолчанию

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

Страница 1 из 4 123 ... ПоследняяПоследняя

Ваши права

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