# Unable to Write to PLC Tags (Read OK)

**URL:** <https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785>\
**Category:** Ignition\
**Created:** [January 19, 2023, 12:47pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785 "2023-01-19T12:47:17Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 12:47pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/1 "2023-01-19T12:47:17Z")

</div>

I have a Micro820 connected via Modbus TCP. Connection is good and able to read Tags and inputs/outputs, but unable to write (error says unable to write to that node). Analogue writes are OK.

I've checked all read/write settings and all look ok. Can't see why I should not be able to write Boolean states to the PLC.

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![bschroeder](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bschroeder/32/13260_2.png) [@bschroeder](https://forum.inductiveautomation.com/u/bschroeder)\
**Post date:** [January 19, 2023, 12:50pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/2 "2023-01-19T12:50:21Z")

</div>

Can you give an example of the tag you are trying to write?

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 1:33pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/3 "2023-01-19T13:33:40Z")

</div>

Ignition:  
Modbus Type = Discrete Input, Modbus Address = 3

PLC:  
Data Type = BOOL, Modbus Mapping = 100003

---

<div class="post-metadata">

**Author:** ![bschroeder](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bschroeder/32/13260_2.png) [@bschroeder](https://forum.inductiveautomation.com/u/bschroeder)\
**Post date:** [January 19, 2023, 1:37pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/4 "2023-01-19T13:37:00Z")

</div>

Is this a physical input address?  
I'm not as familiar with the Micro820s however usually when this error occurs then it's related to writing to an I/O address rather than an internal memory address.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 19, 2023, 1:38pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/5 "2023-01-19T13:38:34Z")

</div>

Discrete inputs and Input Registers are fundamentally read-only via Modbus. Modbus literally has **no function code** to write to these. Inside real PLCs, the logic itself generally cannot write to them either.

So, why do you need to write to these addresses?

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 1:41pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/6 "2023-01-19T13:41:08Z")

</div>

No, it's an internal memory bit (TAG).

I also can't write to physical inputs on the PLC from Ignition, but thought that might be because they are actual physical inputs with devices connected, which could cause conflict.

I can write analogue data to the Modbus Mapping, but not to an actual analogue input. Reading is fine for all into Ignition from the PLC.

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 1:43pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/7 "2023-01-19T13:43:03Z")

</div>

That's interesting, not read that before.

I want to be able to control outputs from Ignition/Designer (teaching students). I can only seem to connect to out Micro820 PLCs via Modbus TCP.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 19, 2023, 1:43pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/8 "2023-01-19T13:43:04Z")

</div>

> [@Laurence\_Roberts](#):
>
> No, it's an internal memory bit

Then you chose the wrong kind of Modbus address in the PLC. You should have chosen coil memory. The 0xxxxx memory range. Which will be `Cx` in Ignition.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 19, 2023, 1:44pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/9 "2023-01-19T13:44:35Z")

</div>

> [@Laurence\_Roberts](#):
>
> I can only seem to connect to out Micro820 PLCs via Modbus TCP.

No longer true:

> [@Automation Professionals' EtherNet/IP Communication Suite V2](https://forum.inductiveautomation.com/t/automation-professionals-ethernet-ip-communication-suite-v2/68190):
>
> Automation Professionals is pleased to announce its latest EtherNet/IP Communications Suite driver module, a major upgrade to its EtherNet/IP Class1 Communications module, as a Public Beta. As of April 15, 2023, this is now a Production Release. The primary new feature is its new Generic EtherNet/IP Client Driver, a drop-in replacement for IA's Logix V21+ driver and its Omron NJ/NX driver. It does work with older Logix processors, and also works with Rockwell's MicroLogix 8xx family (ethernet…

{ /shameless plug }

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 1:48pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/10 "2023-01-19T13:48:06Z")

</div>

I thought 0xxxxx for Coils (outputs), so have been using 1xxxxx for Digital Inputs. I can read the state of these in Ignition, but not write to them,

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 19, 2023, 1:50pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/11 "2023-01-19T13:50:01Z")

</div>

Coils and Holding registers are readable and writable at the protocol level in Modbus. Discrete Inputs and Input Registers are only readable in Modbus. Use the latter if you do not want an external system to be able to write. Use the former if you do. That's it.

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 1:50pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/12 "2023-01-19T13:50:59Z")

</div>

Thank you!

---

<div class="post-metadata">

**Author:** ![Laurence\_Roberts](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@Laurence\_Roberts](https://forum.inductiveautomation.com/u/Laurence_Roberts)\
**Post date:** [January 19, 2023, 2:52pm UTC](https://forum.inductiveautomation.com/t/unable-to-write-to-plc-tags-read-ok/68785/13 "2023-01-19T14:52:17Z")

</div>

Thanks, got it working by writing to Tags with 0xxxxx addresses (added to Modbus Mapping) and used these Tags to switch on outputs.
