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

Тема: Java (JSSC) подключение к ТРМ101

  1. #1

    Question Java (JSSC) подключение к ТРМ101

    Есть необходимость снимать показания ТРМ101.
    Используется конвертор АС3. Программа на Java (хотя конечно библиотека на С).
    Сниффером получена команда (последовательность байтов) для ТРМ101 и она работает будучи отослана не из Java.
    Java программа отсылает команду с СОМ-порт и ничего не происходит.

    У меня сложилось впечатление, что байты помещены в буфер, но их не читает ТРМ101. В конце концов JSSC работает с RS232, а у нас RS485.

    Я не нашел за полчаса серфинга никаких полезных сведений на тему Java+продукция ОВЕН.
    Поэтому взываю о помощи, что я не так делаю?

    public class SerialApp {
    private static SerialPort serialPort;
    public static void main(String[] args) {
    serialPort = new SerialPort("COM1");
    try {
    //Открываем порт
    serialPort.openPort();
    //Выставляем параметры
    serialPort.setParams(SerialPort.BAUDRATE_9600,
    SerialPort.DATABITS_8,
    SerialPort.STOPBITS_1,
    SerialPort.PARITY_NONE);
    //Включаем аппаратное управление потоком
    serialPort.setFlowControlMode(SerialPort.FLOWCONTR OL_RTSCTS_IN |
    SerialPort.FLOWCONTROL_RTSCTS_OUT);
    //Устанавливаем ивент лисенер и маску
    serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR);
    //Отправляем запрос устройству
    byte[] hexRequest = {0x23,0x50,0x4F,0x48,0x47,0x52,0x4F,0x54,0x56,0x4B ,0x54,0x47,0x56,0x0D};
    serialPort.setRTS(true);
    serialPort.writeBytes(hexRequest);
    serialPort.setDTR(true);
    }
    catch (SerialPortException ex) {
    System.out.println(ex.getPortName());
    }
    }
    private static class PortReader implements SerialPortEventListener {

    public void serialEvent(SerialPortEvent event) {
    if(event.isRXCHAR() && event.getEventValue() > 0){
    try {
    //Получаем ответ от устройства, обрабатываем данные и т.д.
    String data = serialPort.readString(event.getEventValue());
    //И снова отправляем запрос
    serialPort.writeString("Get data");
    }
    catch (SerialPortException ex) {
    System.out.println(ex);
    }}}}}
    Последний раз редактировалось Pushchin; 27.03.2018 в 11:10.

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

    По умолчанию

    смотря какие ключевые слова вводили в поиск
    http://www.owen.ru/forum/showthread....l=1#post250558
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Спасибо за ссылку, но она не помогла разобраться в тонкостях обращения к RS485 из JSSC.

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

    По умолчанию

    не все ли равно что там у вас на обратной стороне АС3 или подобного ? RS485, RS232 или что еще ? вы работаете с COM портом, а какой на хвосте преобразователь совершенно не важно. Я вот с MBus сижу работаю и не вижу разницы....

    Начните с прослушки порта утилитами для начала, может у вас в него ничего не улетает. Если что-то уходит подключайте осцилограф на физическую линию и смотрите. У меня только раз пришлось осцилу подключать, когда с MBus разбирался. В остальных случаях даже не потребовалось, так как затык был раньше.

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

    По умолчанию

    Цитата Сообщение от Pushchin Посмотреть сообщение
    Спасибо за ссылку, но она не помогла разобраться в тонкостях обращения к RS485 из JSSC.
    что тут скажешь, значит так хотите разобраться
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #6

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    не все ли равно что там у вас на обратной стороне АС3 или подобного ? RS485, RS232 или что еще ? вы работаете с COM портом, а какой на хвосте преобразователь совершенно не важно. Я вот с MBus сижу работаю и не вижу разницы....

    Начните с прослушки порта утилитами для начала, может у вас в него ничего не улетает. Если что-то уходит подключайте осцилограф на физическую линию и смотрите. У меня только раз пришлось осцилу подключать, когда с MBus разбирался. В остальных случаях даже не потребовалось, так как затык был раньше.
    Спасибо за совет с прослушкой, но я с прослушки начал. Оттуда взял последовательность байтов для команды. Если посылать "подслушанные" команды через сторонние программы, все работает, ответы приходят. В случае с JSSC в порт пишется, но ТРМ не отвечает, похоже есть какой-то нюанс чтобы ТРМ принял.

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

    По умолчанию

    //Включаем аппаратное управление потоком
    serialPort.setFlowControlMode(SerialPort.FLOWCONTR OL_RTSCTS_IN |
    SerialPort.FLOWCONTROL_RTSCTS_OUT);

    А вот это надо ? что сторонние программы включают аппаратное управление ?

  8. #8

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    //Включаем аппаратное управление потоком
    serialPort.setFlowControlMode(SerialPort.FLOWCONTR OL_RTSCTS_IN |
    SerialPort.FLOWCONTROL_RTSCTS_OUT);

    А вот это надо ? что сторонние программы включают аппаратное управление ?
    Да, верно, я уже и сам serialPort.setFlowControlMode(SerialPort.FLOWCONTR OL_NONE) написал, как и стоит в настройках порта.
    Реально стал ответ приходить, спасибо. Правда ответ какой-то избыточный, но это лучше чем вообще никакого.

    Теперь разбираюсь почему обработчик ответа не запускается.

    P.S. Впечатление, что весь и-нет репостит один и тот же нерабочий код...

  9. #9

    По умолчанию

    Все понятно, обработчик в ответ тупо записывает в порт стринг (не команду), поэтому ничего не происходит.

Похожие темы

  1. подключение трм101 к rs-485
    от семен в разделе Сервисное ПО
    Ответов: 0
    Последнее сообщение: 10.03.2013, 23:42
  2. Программирование мва8 на java
    от javist в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 10.08.2012, 23:13
  3. TRM138 + owen_io + java
    от moon-guest в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 13.07.2010, 12:28
  4. Подключение ТРМ101 к ПЛК150
    от Юрий_1900 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 03.03.2008, 13:34
  5. подключение трм101 к овен плк по Rs485
    от незарегистрированный в разделе Эксплуатация
    Ответов: 4
    Последнее сообщение: 11.01.2008, 08:49

Ваши права

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