# Read-write memory double Register write instruction(30)

{% hint style="info" %}
This instruction if for memory with 2 register length only, please refer to the [list](https://docs.lorric.com/qr/fp-as510-paddle-wheel-flowmeter-manual-en-v1/communication/modbus-rtu-protocol/read-write-memory-list).
{% endhint %}

| Register  location | Memory definition | Data type |
| ------------------ | ----------------- | --------- |
| 0001               | scale factor      | float 32  |
| 0304               | upper limit       | float 32  |
| 0306               | lower limit       | float 32  |
| 030B               | Total Target      | float 32  |
| 0406               | 4mA Value         | float 32  |
| 0408               | 20mA Value        | float 32  |
| 040B               | 4mA Adjust        | float 32  |
| 040D               | 20mA Adjust       | float 32  |

## **Instruction example**

Format of command (30) from master<br>

| Byte#                       | 1             | 2             | 3                       | 4                       | 5          | 6          | 7          | 8          | 9   | 10  |
| --------------------------- | ------------- | ------------- | ----------------------- | ----------------------- | ---------- | ---------- | ---------- | ---------- | --- | --- |
| Node ID                     | Slave Address | Function Code | Memory address to write | Memory address to write | Write data | Write data | Write data | Write data | CRC | CRC |
| <p>Example</p><p>01\~FF</p> | 01            | 30            | 00                      | 01                      | 40         | 20         | 00         | 00         | 98  | 0E  |

**Description of master command**

This example will change A02 Scale Factor value to 2.50

slave address: 01(address of this flowmeter)

function code: 30(double Register write instruction)

Address of first reading register: 0001(memory address to write)

Write data: 40 20 00 00 (Change A02 Scale Factor value to 2.50)

‌CRC: 98 0E (Calculating error correcting code according to CRC algorithm)<br>

**Format of flowmeter response(30)**

| Byte#          | 1             | 2             | 3                       | 4                       | 5          | 6          | 7          | 8          | 9   | 10  |
| -------------- | ------------- | ------------- | ----------------------- | ----------------------- | ---------- | ---------- | ---------- | ---------- | --- | --- |
| Node ID        | Slave Address | Function Code | Memory address to write | Memory address to write | Write data | Write data | Write data | Write data | CRC | CRC |
| Example 01\~FF | 01            | 30            | 00                      | 01                      | 40         | 20         | 00         | 00         | 98  | 0E  |

**Description of flowmeter response example**

Valid command received. It will output the same command back to master.

slave address: 01(address of this flowmeter)

function code: 30(double Register write instruction)

Address of first reading register: 0001(memory address to write)

Write data: 40 20 00 00 (Change A02 Scale Factor value to 2.50)

CRC: 98 0E (Calculating error correcting code according to CRC algorithm)<br>
