|
@@ -66,58 +66,71 @@ public class FHMaster {
|
|
}, Modbus.sharedExecutor());
|
|
}, Modbus.sharedExecutor());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ public void prepare() {
|
|
|
|
+ byte[] sb=new byte[8];
|
|
|
|
+ sb[0]=0x00;
|
|
|
|
+ sb[1]=0x00;
|
|
|
|
+ send(sb, 4);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void send(byte[] bytes, int quantity) {
|
|
|
|
+ CompletableFuture<ReadHoldingRegistersResponse> f =
|
|
|
|
+ master.sendRequest(new WriteMultipleRegistersRequest(0, quantity, bytes), 0);
|
|
|
|
+ f.join();
|
|
|
|
+ }
|
|
|
|
|
|
- void direktAuftrag(ModbusTcpMaster master, int pos) {
|
|
|
|
|
|
+ public void direktAuftrag(int pos, int start) {
|
|
byte ccon=0x0;
|
|
byte ccon=0x0;
|
|
- ccon|=(1<<0); //Enable drive
|
|
|
|
- ccon|=(0<<1); //Stop
|
|
|
|
- ccon|=(1<<2); //Release Brake
|
|
|
|
|
|
+ ccon|=(1<<0); // Enable drive
|
|
|
|
+ ccon|=(1<<1); // !Stop
|
|
|
|
+ ccon|=(1<<2); // Release Brake
|
|
ccon|=(0<<3); //Reset fault
|
|
ccon|=(0<<3); //Reset fault
|
|
ccon|=(0<<4); //Reserved
|
|
ccon|=(0<<4); //Reserved
|
|
ccon|=(0<<5); //lock software
|
|
ccon|=(0<<5); //lock software
|
|
- ccon|=(0<<6 | 1 <<7); //lock software
|
|
|
|
|
|
+ ccon|=(1<<6 |0 <<7); //lock software
|
|
// 0,0 Satzselektion
|
|
// 0,0 Satzselektion
|
|
// 1,0 Direktauftrag
|
|
// 1,0 Direktauftrag
|
|
// 0,1 Reserviert
|
|
// 0,1 Reserviert
|
|
// 1,1 Reserviert
|
|
// 1,1 Reserviert
|
|
|
|
|
|
byte cpos=0x0;
|
|
byte cpos=0x0;
|
|
- ccon|=(1<<0); // !Halt
|
|
|
|
- ccon|=(1<<1); // start fahrauftrag
|
|
|
|
- ccon|=(0<<2); // start homing
|
|
|
|
- ccon|=(0<<3); // jog pos
|
|
|
|
- ccon|=(0<<4); // jog neg
|
|
|
|
- ccon|=(0<<5); // teach value
|
|
|
|
- ccon|=(0<<6); // clear remaining pos.
|
|
|
|
- ccon|=(0<<7); // Reserved
|
|
|
|
|
|
+ cpos|=(1<<0); // !Halt
|
|
|
|
+ cpos|=(start<<1); // start fahrauftrag
|
|
|
|
+ cpos|=(0<<2); // start homing
|
|
|
|
+ cpos|=(0<<3); // jog pos
|
|
|
|
+ cpos|=(0<<4); // jog neg
|
|
|
|
+ cpos|=(0<<5); // teach value
|
|
|
|
+ cpos|=(0<<6); // clear remaining pos.
|
|
|
|
+ cpos|=(0<<7); // Reserved
|
|
|
|
|
|
byte cdir=0x0;
|
|
byte cdir=0x0;
|
|
- cdir|=(1<<0); //absolute/relative
|
|
|
|
- cdir|= (1<<1| 1<<2); //absolute/relative
|
|
|
|
|
|
+ cdir|=(0<<0); // relative(0), absolute(1)
|
|
|
|
+ cdir|= (0<<1| 0<<2); //absolute/relative
|
|
// 0,0 Positionsregelung
|
|
// 0,0 Positionsregelung
|
|
// 0,1 Kraftbetrieb
|
|
// 0,1 Kraftbetrieb
|
|
// 1,0 Geschwindigkeitsregelung
|
|
// 1,0 Geschwindigkeitsregelung
|
|
// 1,1 Reserviert
|
|
// 1,1 Reserviert
|
|
- cdir|=(1<<3); // Function Number Kurvenscheibenfunktion (0=nein)
|
|
|
|
- cdir|=(1<<5); // Function Group Kurvenscheibenfunktion (0=nein)
|
|
|
|
- cdir|=(1<<7); // 0 = normal; 1=kurvenscheibenfunktion
|
|
|
|
-
|
|
|
|
- byte sbyte4=100; // Geschw, in % vom Basiswert (PNU540
|
|
|
|
- byte sbyte5= (byte)(pos& 0xff);
|
|
|
|
- byte sbyte6= (byte)(pos>>8 & 0xff);
|
|
|
|
- byte sbyte7= (byte)(pos>>16 & 0xff);
|
|
|
|
- byte sbyte8= (byte)(pos>>24 & 0xff);
|
|
|
|
-
|
|
|
|
- CompletableFuture<ReadHoldingRegistersResponse> f =
|
|
|
|
- master.sendRequest(new WriteMultipleRegistersRequest(0,4, new byte[]{
|
|
|
|
- ccon,
|
|
|
|
|
|
+ cdir|=(0<<3); // Function Number Kurvenscheibenfunktion (0=nein)
|
|
|
|
+ cdir|=(0<<4); // Function Number Kurvenscheibenfunktion (0=nein)
|
|
|
|
+ cdir|=(0<<5); // Function Group Kurvenscheibenfunktion (0=nein)
|
|
|
|
+ cdir|=(0<<6); // Function Group Kurvenscheibenfunktion (0=nein)
|
|
|
|
+ cdir|=(0<<7); // 0 = normal; 1=kurvenscheibenfunktion
|
|
|
|
+
|
|
|
|
+ byte sbyte4=5; // Geschw, in % vom Basiswert (PNU540
|
|
|
|
+ byte sbyte8= (byte)(pos& 0xff);
|
|
|
|
+ byte sbyte7= (byte)(pos>>8 & 0xff);
|
|
|
|
+ byte sbyte6= (byte)(pos>>16 & 0xff);
|
|
|
|
+ byte sbyte5= (byte)(pos>>24 & 0xff);
|
|
|
|
+
|
|
|
|
+ send(new byte[]{ccon,
|
|
cpos,
|
|
cpos,
|
|
cdir,
|
|
cdir,
|
|
sbyte4,
|
|
sbyte4,
|
|
sbyte5,
|
|
sbyte5,
|
|
sbyte6,
|
|
sbyte6,
|
|
sbyte7,
|
|
sbyte7,
|
|
- sbyte8}), 0);
|
|
|
|
|
|
+ sbyte8,
|
|
|
|
+ },4);
|
|
}
|
|
}
|
|
|
|
|
|
public CompletableFuture<Status> readStatus() {
|
|
public CompletableFuture<Status> readStatus() {
|