Система распределенного ввода/вывода ADAM-6000, страница 8

когда вы пробуете написать это для другого модуля, скажите АДАМА-6017, и поэтому вы должны использовать "Adam6017.class"

и "Adam6017.jar" вместо "Adam6060.class" и "Adam6060.jar."

Некоторые Инструкции При Написании Апплета Явы для Серий ADAM-6000 I/O

Чтобы предоставить возможность вашему апплету java общаться с модулями ADAM-6000 I/O, вам придется включать следующий код в самое начало вашей программы:

импортируйте Adam.ModBus.*;

В конструкторе это предложено, чтобы добавить следующий фрагмент в вашего обработчика особой ситуации:

Попытка {

HostIP = getParameter("HostIP");

Adam6060Connection = новый ModBus(HostIP);

если (HostIP == "")

labAdamStatusForDIO.setText("Получите Родной IP недействителен !!");

кроме

labAdamStatusForDIO.setText("Получите Родной IP :" +

Adam6060Connection.GetHostIP() + " Ver 1.00");

………………

}

Фрагмент используется, чтобы получить родное значение IP и чек, если это недействительно. Чтобы приобрести необходимое информация параметра от index.html, вам нужно добавить фрагмент ниже.

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

После того, как вы закончите вашу программу и компиляцию, это должно генерировать пары классов, напр. ADAM6060.class,

ADAM6060$1.класс, ADAM6060$2, и myFramPanel.class в нашем примере. Затем, следуйте за стандартом путь, чтобы объединить генерируемые классы с ModBus.class, которые должны быть размещены в пути директория

"Adam/ModBus/" в файл банки. В данном случае, имя для файла должно быть ADAM6060.jar. Рисунок ниже показывает структуру, чтобы сделать файл банки.

Figure 5-28 The structure of ADAM6060.jar file

Start your ADAM utility, and open the tab “Firmware/Web” as shown below. Then, tell the utility where the

path is for the JAR and HTML files. In this case, they are ADAM-6060.jar and index.html. Push

button, and a confirmation window pops up. After you confirm, it will start processing.

public String[][] getParameterInfo() {

String[][] pinfo =

{

{"HostIP", "String", ""},

};

return pinfo;

}

Figure 5-29 Firmware Upgrade for ADAM-6000 I/O Series Modules

Appendix A

Source Code of Java Applet Example

import Adam.ModBus.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

import java.io.*;

import java.lang.*;

public class Adam6060 extends Applet {

boolean isStandalone = false;

String var0;

Thread AdamPoilThread;

String HostIP;

long ErrCnt = 0;

boolean IsAdamRuning = false;

ModBus Adam6060Connection;

Label Label1 = new Label();

myFramPanel palStatus = new myFramPanel(2);

myFramPanel pal1 = new myFramPanel(3);

myFramPanel pal2 = new myFramPanel(3);

myFramPanel palAdamStatus = new myFramPanel(1);

Label labStartAddress = new Label("Start Address:");

TextField txtStartAddress = new TextField("1");

Label labCount = new Label("No. of coils to read(Max 128):");

TextField txtCount = new TextField("1");

Button btAdam6060 = new Button("Read Coils");

TextArea txtMsg = new TextArea("", 1, 10, 1);

Label labAdamStatusForDIO = new Label("Status : ");

/**Get a parameter value*/

public String getParameter(String key, String def) {

return isStandalone ? System.getProperty(key, def) :

(getParameter(key) != null ? getParameter(key) : def);

}

/**Constructor*/

public Adam6060() {

}

/**Applet Initialization*/

public void init() {

try {

HostIP = getParameter("HostIP");

Adam6060Connection = new ModBus(HostIP); //create ADAM-6060

module object

if (HostIP == "") //check the Host IP

labAdamStatusForDIO.setText("Get Host IP is null !!");

else

labAdamStatusForDIO.setText("Get Host IP :" +

Adam6060Connection.GetHostIP() + " Ver 1.00");

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

/**Component initialization and displayed screen*/

private void jbInit() throws Exception {

this.setLayout(null);

palStatus.setBackground(Color.lightGray);

palAdamStatus.setBackground(Color.lightGray);

palStatus.setBounds(new Rectangle(42, 50, 409, 15 *2 + 0 * 2 + 77 +

152 + 33 ));

pal1.setBounds(new Rectangle(12, 15 , 385, 77));

pal2.setBounds(new Rectangle(12, 15 + 77 + 0 , 385, 152));

palAdamStatus.setBounds(new Rectangle(12, 15 + 77 + 0 * 2 + 152, 385,

33));

palStatus.setLayout(null);

pal1.setLayout(null);

pal1.add(labStartAddress, null);

pal1.add(txtStartAddress, null);

pal1.add(labCount, null);

pal1.add(txtCount, null);

pal1.add(btAdam6060, null);

labStartAddress.setBounds(new Rectangle(20, 15, 85, 20));

txtStartAddress.setBounds(new Rectangle(205, 15, 60, 20));

labCount.setBounds(new Rectangle(20, 40, 180, 20));

txtCount.setBounds(new Rectangle(205, 40, 60, 20));

btAdam6060.setBounds(new Rectangle(275, 40, 80, 22));

btAdam6060.addMouseListener(new java.awt.event.MouseAdapter() {

public void mousePressed(MouseEvent e) { //mouse event handling

int i, j;

long lAddress, lCount;

byte ModBusRTU[] = new byte[128];

if

(Adam6060Connection.ReadCoil((int)Long.parseLong(txtStartAddress.getT

ext()), (int)Long.parseLong(txtCount.getText()), ModBusRTU))

{

lAddress = Long.parseLong(txtStartAddress.getText());

for( i = 0; i < Long.parseLong(txtCount.getText()); i++)

{

txtMsg.append("Address:" + String.valueOf(lAddress) +

" -> " + String.valueOf((int)ModBusRTU[i]) + "\n");

lAddress++;

}

}

else

{

try

{

Adam6060Connection = new ModBus(HostIP);

}

catch(Exception eNet) { eNet.printStackTrace(); }

}

}

});

palAdamStatus.setLayout(null);

pal2.setLayout(null);

pal2.add(txtMsg, null);

txtMsg.setBounds(new Rectangle(15, 15, 355, 120));