Модераторы: PILOT
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаленно помочь с java&modbus 
:(
    Опции темы
AnS
Дата 3.6.2016, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.6.2016

Репутация: нет
Всего: нет



Добрый день.

Долго боролся сам, но видимо не справлюсь.
Есть задача отображать в окне данные от трех одинаковых устройств.
Табличка modbus:
user posted image
Мой код:
Код

package modbusSerial;
import net.wimpi.modbus.net.*;
import net.wimpi.modbus.procimg.*;
import net.wimpi.modbus.ModbusCoupler;
import net.wimpi.modbus.util.SerialParameters;



/*импорт системных библиотек библиотек*/
import javax.swing.*;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.SystemColor;
import java.awt.event.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class modbusSerial extends JFrame {
    

    private JFrame frame;
    private JButton btnPoll, btnClose;
    //private Task task;
    //private JTextArea textArea;    
    
    public modbusSerial() {
        createAndShowGUI();
        };
        private void createAndShowGUI() {
            frame = new JFrame("ИЦ ИОН");
            frame.setBounds(700, 200, 260, 500);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().setLayout(new GridLayout(0, 1, 0, 0));
            
            JPanel panel = new JPanel();
            panel.setBackground(SystemColor.info);
            frame.getContentPane().add(panel);
            panel.setLayout(null);

            JTextArea textArea = new JTextArea();
            textArea.setBounds(4, 32, 244, 395);
            textArea.setColumns(50);
            textArea.setRows(16);
            panel.add(textArea);
            
            btnPoll = new JButton("Опросить");
            btnPoll.setFont(new Font("Tahoma", Font.BOLD, 11));
            btnPoll.setBackground(new Color(60, 179, 113));
            btnPoll.setBounds(4, 439, 89, 23);
            btnPoll.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    btnPoll.setEnabled(false);
                    btnClose.setEnabled(true);
                    //task = new Task(textArea);
                    //task.execute();
                    }
                });
            btnClose = new JButton("Отмена");
            btnClose.setBackground(new Color(240, 128, 128));
            btnClose.setBounds(159, 439, 89, 23);
            btnClose.setEnabled(false);
            btnClose.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    //task.cancel(true);
                    //btnClose.setEnabled(false);
                    //btnPoll.setEnabled(true);
                    System.exit(0);
                    }
                });
            panel.add(btnPoll);
            panel.add(btnClose);

            JLabel label = new JLabel("Данные объекта");
            label.setFont(new Font("Tahoma", Font.BOLD, 14));
            label.setHorizontalAlignment(SwingConstants.CENTER);
            label.setBounds(35, 5, 160, 20);
            panel.add(label);
            }
        
    
  
  public static void main(String[] args) {
      
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                modbusSerial testMast = new modbusSerial();
                testMast.frame.setVisible(true);
            }
        });
      
    try {
     
     /* The important instances and variables */
     ModbusSerialListener listener = null;
     SimpleProcessImage spi = null;
     String portname = "COM2"; //the portname of the serial port to listen to 
     String message = "";
     
        System.out.println("Установка соединения...");    //выводим в консоль
        message = "Установка соединения...";
        //publish(message);
     
     //1. Prepare a process image
     spi = new SimpleProcessImage();
     spi.addDigitalOut(new SimpleDigitalOut(true));
     spi.addDigitalOut(new SimpleDigitalOut(false));
     spi.addDigitalIn(new SimpleDigitalIn(false));
     spi.addDigitalIn(new SimpleDigitalIn(true));
     spi.addDigitalIn(new SimpleDigitalIn(false));
     spi.addDigitalIn(new SimpleDigitalIn(true));
     spi.addRegister(new SimpleRegister(251));
     spi.addInputRegister(new SimpleInputRegister(45));

     //2. Create the coupler and set the slave identity
     ModbusCoupler.getReference().setProcessImage(spi);
     ModbusCoupler.getReference().setMaster(false);
     ModbusCoupler.getReference().setUnitID(2);  
     
     //3. Set up serial parameters
     SerialParameters params = new SerialParameters();
     params.setPortName(portname);
     params.setBaudRate(9600);
     params.setDatabits(8);
     params.setParity("None");
     params.setStopbits(1);
     params.setEncoding("ascii");
     params.setEcho(false);
     
     //4. Set up serial listener
     listener = new ModbusSerialListener(params);
     listener.setListening(true);     
     

    
     
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  
    
    
  }//main
  
  
}//class modbusSerial

Хочу из этого сделать работающее. Готов отблагодарить.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Объявления о найме специалистов"
BearBeer
  • Придерживайтесь правил форума.

  • Если вы предлагаете НЕ удалённую работу, то

    название города и фирмы обязательно указывать уже в названии темы(!)

  • Одна вакансия - одна тема.

    Вам будет удобней следить за ответами, ищущим работу - выбирать.


  • В случае, если у нас возникнут обоснованные подозрения

    о неблагонадежности Вашего электронного адреса, ваш аккаунт будет удалён, а доступ к форуму запрещён!


  • Хотите быстрее найти специалиста? Разместите тогда ваше объявление вверху всех страниц сайта! Тогда его будут ежедневно видеть более 4000 программистов! Обратите внимание на верхний левый угол сайта - там вы найдете дополнительные инструкции при клике на линк.

В случае невыполнения данных правил Ваши сообщения могут быть удалены без предупреждения.


Полный спискок правил. С уважением, BearBeer.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Объявления о найме специалистов | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.