Read all relevant registers.
authorBenjamin Braatz <benjamin.braatz@graph-it.com>
Wed, 2 Feb 2022 11:22:53 +0000 (12:22 +0100)
committerBenjamin Braatz <benjamin.braatz@graph-it.com>
Wed, 2 Feb 2022 11:22:53 +0000 (12:22 +0100)
gmodbus/hitachi.py

index e13a92fcf5865d5d5f59220637f9b6be9826122a..58bb4e903db4169b3d9d0caf9a69cb8c0723f851 100644 (file)
@@ -11,24 +11,28 @@ class SJP1Fu():
   def __init__(self, client: ClientInterface) -> None:
     self.__protocol = DatatypesProtocol(client, SJP1FU_COILS, SJP1FU_REGISTERS)
 
-  parameters = [(12015, 1), (12220, 0), (13022, 2), (13023, 37), (13024, 5),
-                (13110, 2), (14140, 0), (15102, 11), (15103, 1)]
-  #parameters = [(12015, 1), (12220, 90), (13022, 2), (13023, 37), (13024, 5),
-  #              (13110, 2), (14140, 1), (15102, 11), (15103, 4)]
+  registers = [12015, 12220, 12222, 13015, 13021, 13022, 13023, 13024, 13026,
+               13027, 13101, 13210, 13221, 14140, 15102, 15103, 15110, 15112,
+               15114, 15116, 15118]
 
   async def check_parameters(self) -> None:
-    for (register, value) in self.parameters:
+    for register in self.registers:
       current = int(await self.__protocol.read_register(register))
       if current != value:
-          print(f"Register {register} is {current} instead of {value}.")
+        print(f"Register {register}: {current}")
+
+  parameters = [(12015, 1), (12220, 0), (13022, 2), (13023, 37), (13024, 5),
+                (13110, 2), (14140, 0), (15102, 11), (15103, 1)]
+  #parameters = [(12015, 1), (12220, 90), (13022, 2), (13023, 37), (13024, 5),
+  #              (13110, 2), (14140, 1), (15102, 11), (15103, 4)]
 
   async def correct_parameters(self) -> None:
     for (register, value) in self.parameters:
       current = int(await self.__protocol.read_register(register))
       if current != value:
-          print(f"Register {register} is {current} instead of {value}.")
-          await self.__protocol.write_register(9002, 1)
-          await self.__protocol.write_register(register, value)
+        print(f"Register {register} is {current} instead of {value}.")
+        await self.__protocol.write_register(9002, 1)
+        await self.__protocol.write_register(register, value)
 
   async def set_frequency(self, frequency: int) -> None:
     await self.__protocol.write_register(10502, frequency)
@@ -103,6 +107,30 @@ SJP1FU_REGISTERS = {
       'scale': 0.01,
     },
   },
+  13015: {
+    'code': 'bA115',
+    'name': 'First torque limit 4',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0,
+      'max': 500,
+      'unit': '%',
+      'scale': 0.1,
+    },
+  },
+  13021: {
+    'code': 'bA121',
+    'name': 'First overcurrent suppression level',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0,
+      'max': 50,
+      'unit': 'A',
+      'scale': 0.1,
+    },
+  },
   13022: {
     'code': 'bA122',
     'name': 'First overload limit 1 selection',
@@ -141,6 +169,44 @@ SJP1FU_REGISTERS = {
       'scale': 0.01,
     },
   },
+  13026: {
+    'code': 'bA126',
+    'name': 'First overload limit 2 selection',
+    'rw': 'rw',
+    'type': 'enum',
+    'conf': {
+      'values': {
+        0: 'Disabled',
+        1: 'During acceleration and at constant speed',
+        2: 'At constant speed',
+        3: 'Speed increases during regeneration',
+      },
+    },
+  },
+  13027: {
+    'code': 'bA127',
+    'name': 'First overload limit 2 level',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0,
+      'max': 50,
+      'unit': 'A',
+      'scale': 0.1,
+    },
+  },
+  13101: {
+    'code': 'bb101',
+    'name': 'First carrier frequency',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0.5,
+      'max': 16.0,
+      'unit': 'kHz',
+      'scale': 0.1,
+    },
+  },
   13110: {
     'code': 'bb-10',
     'name': 'Auto-reset selection',
@@ -154,6 +220,30 @@ SJP1FU_REGISTERS = {
       },
     },
   },
+  13210: {
+    'code': 'bC110',
+    'name': 'First electronic thermal level',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0,
+      'max': 150,
+      'unit': 'A',
+      'scale': 0.1,
+    },
+  },
+  13221: {
+    'code': 'bC121',
+    'name': 'First free electronic thermal current 1',
+    'rw': 'rw',
+    'type': 'uint16',
+    'conf': {
+      'min': 0,
+      'max': 150,
+      'unit': 'A',
+      'scale': 0.1,
+    },
+  },
   14140: {
     'code': 'Cb-40',
     'name': 'Thermistor selection',
@@ -191,4 +281,64 @@ SJP1FU_REGISTERS = {
       'scale': 1,
     },
   },
+  15110: {
+    'code': 'Hb110',
+    'name': 'First IM motor constant R1',
+    'rw': 'rw',
+    'type': 'int32',
+    'conf': {
+      'min': 0.000001,
+      'max': 1000,
+      'unit': 'Ohm',
+      'scale': 0.000001,
+    },
+  },
+  15112: {
+    'code': 'Hb112',
+    'name': 'First IM motor constant R2',
+    'rw': 'rw',
+    'type': 'int32',
+    'conf': {
+      'min': 0.000001,
+      'max': 1000,
+      'unit': 'Ohm',
+      'scale': 0.000001,
+    },
+  },
+  15114: {
+    'code': 'Hb114',
+    'name': 'First IM motor constant L',
+    'rw': 'rw',
+    'type': 'int32',
+    'conf': {
+      'min': 0.000001,
+      'max': 1000,
+      'unit': 'mH',
+      'scale': 0.000001,
+    },
+  },
+  15116: {
+    'code': 'Hb116',
+    'name': 'First IM motor constant I_0',
+    'rw': 'rw',
+    'type': 'int32',
+    'conf': {
+      'min': 0.01,
+      'max': 10000,
+      'unit': 'A',
+      'scale': 0.01,
+    },
+  },
+  15118: {
+    'code': 'Hb118',
+    'name': 'First IM motor constant J',
+    'rw': 'rw',
+    'type': 'int32',
+    'conf': {
+      'min': 0.00001,
+      'max': 100000,
+      'unit': 'kg*m^2',
+      'scale': 0.00001,
+    },
+  },
 }