# Write to tag failing with status "Unknown"

**URL:** <https://forum.inductiveautomation.com/t/write-to-tag-failing-with-status-unknown/3745>\
**Category:** Ignition\
**Created:** [December 13, 2011, 10:43pm UTC](https://forum.inductiveautomation.com/t/write-to-tag-failing-with-status-unknown/3745 "2011-12-13T22:43:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Greg.Buehler](https://avatars.discourse-cdn.com/v4/letter/g/ecc23a/32.png) [@Greg.Buehler](https://forum.inductiveautomation.com/u/Greg.Buehler)\
**Post date:** [December 13, 2011, 10:43pm UTC](https://forum.inductiveautomation.com/t/write-to-tag-failing-with-status-unknown/3745/1 "2011-12-13T22:43:53Z")

</div>

I’m having some issues writing boolean tags.

Tag configuration:

Error Message:

System Console Log:

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 14, 2011, 3:12am UTC](https://forum.inductiveautomation.com/t/write-to-tag-failing-with-status-unknown/3745/2 "2011-12-14T03:12:27Z")

</div>

The bit=X syntax is read-only.

---

<div class="post-metadata">

**Author:** ![Greg.Buehler](https://avatars.discourse-cdn.com/v4/letter/g/ecc23a/32.png) [@Greg.Buehler](https://forum.inductiveautomation.com/u/Greg.Buehler)\
**Post date:** [December 15, 2011, 4:42pm UTC](https://forum.inductiveautomation.com/t/write-to-tag-failing-with-status-unknown/3745/3 "2011-12-15T16:42:22Z")

</div>

Thanks! Just so it’s available, I wrote this macro for converting those bit addressed tags.

```auto
Function ConvertDirectlyAddressedModbus(tag) As String
    
    Dim numberPart As Integer
    Dim numberPartStart As Integer
    Dim stringPart As String
    Dim bit As String
    bit = ""
    
    For Index = (Len(tag)) To 1 Step -1
        testvalue = Mid(tag, Index, 1)
        If Not IsNumeric(testvalue) Then
            numberPartStart = Index
            Exit For
        End If
    Next Index
    
    Dim numberpartString As String
    numberpartString = Mid(tag, numberPartStart + 1, (Len(tag) - numberPartStart))
    address = (numberpartString)
    stringPart = Mid(tag, 1, numberPartStart)
        
    plcIndex = InStr(tag, "[") + 1
    plcDelim = "]"
    
    bitIndex = InStr(stringPart, ",bit=")
    If bitIndex > 0 Then
        BitStart = bitIndex + Len(",bit=")
        BitEnd = InStr(stringPart, "]")
        bit = Mid(stringPart, BitStart, BitEnd - BitStart)
        plcDelim = ","
    End If
    
    plc = Mid(stringPart, plcIndex, Len(stringPart) - (Len(stringPart) - InStr(stringPart, plcDelim) + 2))
    
    result = "[" + plc + "]" + address
    
    If bit <> "" Then
        result = result + "." + bit
    End If
    
    ConvertDirectlyAddressedModbus = result
End Function
```
