# Bad\_CommunicationError: A low level communication error occurred

**URL:** <https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466>\
**Category:** Ignition\
**Created:** [November 14, 2022, 1:05pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466 "2022-11-14T13:05:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 1:05pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/1 "2022-11-14T13:05:13Z")

</div>

Bad\_CommunicationError: A low level communication error occurred.  
8.1.21

Hi folks,  
Having a comms issue with a particular RS485 device.  
I am fairly certain this is not an end device issue as if i use a 3rd party software, hitting the device at 1 second rate, I am getting 0 comms drop offs.

However today, when investigating the issue i get the above error on the tag, and the logs are showing some checksum errors at times too.

Architecture is an Onlogic IPC with ignition edge installed.  
We have 5 device connections utilised.  
We have a modbus 485 device connection to com port 1 of IPC.

Slave address 1 with no other slaves on daisy chain.

I was seeing alot of comms issues last week until i changed the tag group data mode to polled, i got 0 comms drop offs in over 1 week.

IPC was shut down, and has been power back up today and we now have the problem occurring again.

Below is the mix of errors I am seeing.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/1/e1631a3d1568f4a905bb3658a92c13bc8de43654.png)

Below is my Device Config:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/d/6d3e867e2df23410058f5feac8840575e49ca2ac.png)

On getting comms drop offs now (Tag going to Bad quality), the timestamp is quite strange showing a date of 1601-01-01

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/d/fdb5b67f16c85efade60fd537ac73b970fd27b29.png)

Any tips greatly appreciated.

---

<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:** [November 14, 2022, 1:13pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/2 "2022-11-14T13:13:29Z")

</div>

The Bad\_CommunicationError quality/status is because of the checksum failures. The timestamp you're seeing is the null/0 value for an OPC UA timestamp.

Other than checking that your serial settings are correct I'm not sure what else you can do besides find some kind of serial port sniffer or tap and look at the serial traffic as a sanity check.

edit: you might try turning of the "reconnect after consecutive timeouts" setting as well. If nothing else this will clean up the logs a little, but I'm also seeing a bug where a checksum mismatch response doesn't reset the counter that counts timed out requests, so eventually what looks like just one request timing out could cause a reconnect, which causes all outstanding requests to fail.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 1:43pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/3 "2022-11-14T13:43:03Z")

</div>

Thanks for coming back Kevin.  
I didn't think a sniffer would be useable in a 485 scenario with mulitiple master issues?

I already have reconnect after 3 consecutive disabled which left me surprised to be getting the disconnects aligned with the timeouts.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/d/3d6ef69326e2168b8675d5ce15afc04d8adc70a1.png)

---

<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:** [November 14, 2022, 1:44pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/4 "2022-11-14T13:44:25Z")

</div>

> [@Michael\_McCabe](#):
>
> mulitiple master issues?

I'm not really familiar with the difference between 232 and 485, but is there something about 485 that makes multiple masters possible?

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 1:47pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/5 "2022-11-14T13:47:31Z")

</div>

I don't believe so.  
Any time I would have needed multiple masters before I would have always put in a TCP gateway and hit its from whatever server needed to poll from.

---

<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:** [November 14, 2022, 1:48pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/6 "2022-11-14T13:48:13Z")

</div>

Well I'm not sure what you're asking about then. If you have multiple masters on this line then it's not surprising you get inconsistent results. If you don't, then I don't know what you were referencing.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 2:04pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/7 "2022-11-14T14:04:02Z")

</div>

I think there is some confusion on the original ask.  
Let me see can I explain.

I do not have multiple masters.  
You suggested using a sniffer, which I thought would not work with RS485 RTU only allowing 1 master.

You also suggested turning off Reconnect after 3 Consecutive timeouts.  
I replied saying it was already turned off and that raised another question, why is the device connection showing disconnected in the logs.

I highlighted I don't think this is field related because if I use a 3rd party software instead (Not in parallel because this is the same as 2 masters and does not work) of ignition, I am not getting any errors.

---

<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:** [November 14, 2022, 2:06pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/8 "2022-11-14T14:06:12Z")

</div>

> [@Michael\_McCabe](#):
>
> You also suggested turning off Reconnect after 3 Consecutive timeouts.  
> I replied saying it was already turned off and that raised another question, why is the device connection showing disconnected in the logs.

Still a mystery. Without the actual logs I can't confirm if you're just seeing logs from other Modbus devices or there's just some bug causing that.

> [@Michael\_McCabe](#):
>
> You suggested using a sniffer, which I thought would not work with RS485 RTU only allowing 1 master.

I'm talking about using something like [this](https://www.com-port-monitoring.com/#free-monitor), which just analyzes traffic on an already open port. Unfortunately this particular software does not support RS485 in the free version.

> [@Michael\_McCabe](#):
>
> I highlighted I don't think this is field related because if I use a 3rd party software instead (Not in parallel because this is the same as 2 masters and does not work) of ignition, I am not getting any errors.

What software? Running on the same server or a different machine? Are you certain it checks the CRC? Is it requesting the same registers as Ignition?

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 2:21pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/9 "2022-11-14T14:21:34Z")

</div>

So that log is filtered for the Device name so they are all coming from that particular device connection.

The 3rd party software I am using is below.

> **[Baseblock Software LLC, Software for the Motor Control Industry.](https://www.baseblock.com/PRODUCTS/comtestpro.htm)**
>
> Motor Control Software, Estimation Software, Commissioning Software, Simulation Software, Sales Marketing Software

You can see on its features on right hand side that it does offer Reverse CRC.  
Is this the same as what you are asking when you say "checks the CRC"?

Yes I am requesting the same registers.  
I am only polling 6 registers.  
Ranging from HR6 - HR34

I have Span gaps enabled, I have tried previously to drop the Max number of holding regs per request but does not change to outcome.

The register HR34 is 1 registers I want to write to, however because of my lack of experience with how this behaves, I has disabled this tag to remove it from the question for now.

---

<div class="post-metadata">

**Author:** ![Davide\_Bortolini](https://avatars.discourse-cdn.com/v4/letter/d/3e96dc/32.png) [@Davide\_Bortolini](https://forum.inductiveautomation.com/u/Davide_Bortolini)\
**Post date:** [November 14, 2022, 2:26pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/10 "2022-11-14T14:26:37Z")

</div>

Have you tried to access the requested registers with tools like QModMaster in order to ensure that Modbus RTU connectivity is working properly. Of course you need to temporarily disable Ignition as it's acting as RTU Master in the 485 serial chain.

---

<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:** [November 14, 2022, 2:27pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/11 "2022-11-14T14:27:08Z")

</div>

[Set the log level](https://docs.inductiveautomation.com/display/DOC81/Diagnostics+-+Logs#DiagnosticsLogs-ChangingLoggingLevels) for the logger you find searching "ReadHoldingRegistersRequest" to TRACE and let's see if the request/response bytes are making sense.

> [@Michael\_McCabe](#):
>
> I am only polling 6 registers.  
> Ranging from HR6 - HR34
> 
> I have Span gaps enabled,

Not that this is necessarily an issue, but you're actually polling more registers than you think in this configuration. It's going to ask for 28 registers starting at offset 6 (5, really, at the protocol layer, unless you have zero-baed addressing on). This is because span gaps is on. If you turned it off then you'd have more requests for less registers in each request.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 2:29pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/12 "2022-11-14T14:29:27Z")

</div>

I have used a different software, just not you exact suggestion.  
Details of trying this on a replies above.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 2:41pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/13 "2022-11-14T14:41:11Z")

</div>

Ok, I have turned off Span Gaps and it actually makes the problem worse.  
Now i seem to be getting vlaues back on HR6 mush more consistantly than the rest. However, it does still drop off in data quality so doesn't seem to have fixed anything.

Let me try the logger as you have defined.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 2:56pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/14 "2022-11-14T14:56:45Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/1/6134cb3b383f2aba149278ba12f47376adf291d6.jpeg)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/9/b93712e4e0cb7052324b672ec581c022b6844654.jpeg)

Just after i grabbed above Screenshots,  
I turned back on allow span gaps,  
We can see la number of good requests and the checksum issue starts again.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/c/1cfe06f71b993ea8456d44deae56dcc268ac5a05.jpeg)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/8/685d9d09f724e974eb6bb684dd8a65cd2bcb467b.jpeg)

---

<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:** [November 14, 2022, 3:09pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/15 "2022-11-14T15:09:19Z")

</div>

Can you export and upload these logs somewhere?

---

<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:** [November 14, 2022, 3:30pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/16 "2022-11-14T15:30:09Z")

</div>

From the logs it just looks like there's something wrong with your device. Looking at where (one of) the first CRC mismatch occurs, you see this request:

```auto
01 03 00 05 00 18 55 C1 

```

SlaveId=0x01, FC=0x03, Offset=0x0005, Quantity=0x0018

It's met with this response from the device:

```auto
01 03 03 30 01 F1 00 39

```

SlaveId=0x01, FC=0x03, Byte Count = 0x03, Data = 0x30, 0x01, 0xF1, CRC == 0x0039

Starting at the byte count this is a bogus response. A register response should never indicate an odd number of bytes, and we requested 24 registers.

I don't know if something is wrong with the device itself or at the serial layer, but the driver appears to be doing the best it can with the bad data being returned.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 3:35pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/17 "2022-11-14T15:35:53Z")

</div>

Processing: Ignition\_USV\_IPC\_Ignition\_logs\_20221114-1510.idb...  
Thanks for the help here Kevin, let me see what I can trace with the information above.

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 4:05pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/18 "2022-11-14T16:05:34Z")

</div>

Hi again Kevin,  
As a temporary fix, have I any way of ignoring this type of response?

---

<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:** [November 14, 2022, 4:14pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/19 "2022-11-14T16:14:13Z")

</div>

Does this device use Linux as its OS? If so, you might find the advice in my own Modbus Module's user manual helpful:

[https://www.automation-pros.com/modbus/UserManual.pdf](https://www.automation-pros.com/modbus/UserManual.pdf)

---

<div class="post-metadata">

**Author:** ![Michael\_McCabe](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@Michael\_McCabe](https://forum.inductiveautomation.com/u/Michael_McCabe)\
**Post date:** [November 14, 2022, 4:23pm UTC](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466/20 "2022-11-14T16:23:25Z")

</div>

Its Windows Phil

[Next page](https://forum.inductiveautomation.com/t/bad-communicationerror-a-low-level-communication-error-occurred/66466.md?page=2)
