Innovenergy_trunk/csharp/Lib/Devices/AMPT/Doc/Modbus Map.html

413 lines
11 KiB
HTML
Raw Permalink Normal View History

2023-05-06 13:41:20 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Modbus Map</title>
<style>
* {
font-family: Arial, sans-serif;
font-size: 14px;
}
h2 {
font-size: 15px;
}
html, body {
margin: 0;
padding: 0;
}
a {
color: #565A5C;
text-decoration: none;
}
div.content {
position: relative;
text-align: center;
padding: 0;
margin-top: 0;
height: 100%;
overflow: auto;
}
div.textblock {
text-align: left;
padding: 0;
width: 40%;
position: relative;
margin: auto;
}
table.main {
border: solid black 2px;
border-spacing: 0;
margin: auto;
}
td {
padding: 6px;
border: solid black 1px;
border-spacing: 0;
}
tr.even {
background: #EFEFEF;
}
tr.odd {
background: #DDDDDD;
}
td.desc {
text-align: left;
}
</style>
</head>
<body>
<div class="content">
<br><br>
<h2>Modbus Map</h2>
<div class="textblock">
<p>These Modbus maps are for your reference. The modbus service runs on port 502.</p>
<p>Important note: The Ampt ModBus register map uses big endian values.</p>
<p><a href="smdx_64050.xml">SunSpec SMDX File</a></p>
</div>
<br>
<h2> SunSpec Registers </h2>
<table class="main" style="width:70%">
<tbody>
<tr class="odd">
<td><strong>Start Offset</strong></td>
<td><strong>Size</strong></td>
<td><strong>Name</strong></td>
<td><strong>Type</strong></td>
<td><strong>R/W</strong></td>
<td><strong>Description</strong></td>
</tr>
<tr class="even">
<td>1</td>
<td>2</td>
<td>SID</td>
<td>uint32</td>
<td>R</td>
<td class="desc">A well-known value 0x53756e53, uniquely identifies this as a SunSpec Modbus Map</td>
</tr>
<tr class="odd">
<td>3</td>
<td>1</td>
<td>ID</td>
<td>uint16</td>
<td>R</td>
<td class="desc">A well-known value 1, uniquely identifies this as a SunSpec Common Model</td>
</tr>
<tr class="even">
<td>4</td>
<td>1</td>
<td>L</td>
<td>uint16</td>
<td>R</td>
<td class="desc">Well-known # of 16-bit registers to follow: 66</td>
</tr>
<tr class="odd">
<td>5</td>
<td>16</td>
<td>Manufacturer</td>
<td>string</td>
<td>R</td>
<td class="desc">A well-known value registered with SunSpec for compliance: "Ampt"</td>
</tr>
<tr class="even">
<td>21</td>
<td>16</td>
<td>Model</td>
<td>string</td>
<td>R</td>
<td class="desc">Manufacturer specific value "Communication Unit"</td>
</tr>
<tr class="odd">
<td>37</td>
<td>8</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="even">
<td>45</td>
<td>8</td>
<td>Version</td>
<td>string</td>
<td>R</td>
<td class="desc">Software Version</td>
</tr>
<tr class="odd">
<td>53</td>
<td>16</td>
<td>Serial Number</td>
<td>string</td>
<td>R</td>
<td class="desc">Manufacturer specific value</td>
</tr>
<tr class="even">
<td>69</td>
<td>1</td>
<td>Device Address</td>
<td>int16</td>
<td>R/W</td>
<td class="desc">Modbus Device ID</td>
</tr>
<tr class="odd">
<td>70</td>
<td>1</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="even">
<td>71</td>
<td>1</td>
<td>ID</td>
<td>uint16</td>
<td>R</td>
<td class="desc">Ampt SunSpec Vendor Code 64050</td>
</tr>
<tr class="odd">
<td>72</td>
<td>1</td>
<td>L</td>
<td>uint16</td>
<td>R</td>
<td class="desc">Variable number of 16-bit registers to follow: 12 + N*16</td>
</tr>
<tr class="even">
<td>73</td>
<td>1</td>
<td>DCA_SF</td>
<td>int16</td>
<td>R</td>
<td class="desc">Current scale factor</td>
</tr>
<tr class="odd">
<td>74</td>
<td>1</td>
<td>DCV_SF</td>
<td>int16</td>
<td>R</td>
<td class="desc">Voltage scale factor</td>
</tr>
<tr class="even">
<td>75</td>
<td>1</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="odd">
<td>76</td>
<td>1</td>
<td>DCkWh_SF</td>
<td>int16</td>
<td>R</td>
<td class="desc">Energy Scale Factor</td>
</tr>
<tr class="even">
<td>77</td>
<td>1</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="odd">
<td>78</td>
<td>1</td>
<td>N</td>
<td>uint16</td>
<td>R</td>
<td class="desc">Number of strings</td>
</tr>
<tr class="even">
<td>79</td>
<td>6</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td colspan="6"><strong>1</strong></td>
</tr>
<tr class="even">
<td>85</td>
<td>1</td>
<td>String ID</td>
<td>int16</td>
<td>R</td>
<td class="desc">The string number</td>
</tr>
<tr class="odd">
<td>86</td>
<td>2</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="even">
<td>88</td>
<td>2</td>
<td>String data timestamp</td>
<td>uint32</td>
<td>R</td>
<td class="desc">The UTC timestamp of the measurements</td>
</tr>
<tr class="odd">
<td>90</td>
<td>1</td>
<td>OutDCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String output current in mA</td>
</tr>
<tr class="even">
<td>91</td>
<td>2</td>
<td>OutDCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String output voltage in mV</td>
</tr>
<tr class="odd">
<td>93</td>
<td>2</td>
<td>In1DCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String input 1 voltage in mV</td>
</tr>
<tr class="even">
<td>95</td>
<td>2</td>
<td>In2DCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String input 2 voltage in mV</td>
</tr>
<tr class="odd">
<td>97</td>
<td>2</td>
<td>DCWh</td>
<td>uint32</td>
<td>R</td>
<td class="desc">Daily integrated string output energy in Wh</td>
</tr>
<tr class="even">
<td>99</td>
<td>1</td>
<td>In1DCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String input 1 current in mA</td>
</tr>
<tr class="odd">
<td>100</td>
<td>1</td>
<td>In2DCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String input 2 current in mA</td>
</tr>
<tr>
<td colspan="6"><strong>2</strong></td>
</tr>
<tr class="even">
<td>101</td>
<td>1</td>
<td>String ID</td>
<td>int16</td>
<td>R</td>
<td class="desc">The string number</td>
</tr>
<tr class="odd">
<td>102</td>
<td>2</td>
<td><em>Reserved</em></td>
<td>-</td>
<td>-</td>
<td></td>
</tr>
<tr class="even">
<td>104</td>
<td>2</td>
<td>String data timestamp</td>
<td>uint32</td>
<td>R</td>
<td class="desc">The UTC timestamp of the measurements</td>
</tr>
<tr class="odd">
<td>106</td>
<td>1</td>
<td>OutDCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String output current in mA</td>
</tr>
<tr class="even">
<td>107</td>
<td>2</td>
<td>OutDCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String output voltage in mV</td>
</tr>
<tr class="odd">
<td>109</td>
<td>2</td>
<td>In1DCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String input 1 voltage in mV</td>
</tr>
<tr class="even">
<td>111</td>
<td>2</td>
<td>In2DCV</td>
<td>uint32</td>
<td>R</td>
<td class="desc">String input 2 voltage in mV</td>
</tr>
<tr class="odd">
<td>113</td>
<td>2</td>
<td>DCWh</td>
<td>uint32</td>
<td>R</td>
<td class="desc">Daily integrated string output energy in Wh</td>
</tr>
<tr class="even">
<td>115</td>
<td>1</td>
<td>In1DCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String input 1 current in mA</td>
</tr>
<tr class="odd">
<td>116</td>
<td>1</td>
<td>In2DCA</td>
<td>int16</td>
<td>R</td>
<td class="desc">String input 2 current in mA</td>
</tr>
</tbody>
</table>
<br><br><br>
</div>
</body>
</html>