I can communicate to the plc but can't ping it

Pylogix connections to Micro8xx need the .Micro800 member assigned a value of True; see the Add this line above, that may fix it.

Thanks dr.bitboy.

I tried adding the line comm.Micro800 = True but that didn't make it work either. I also added comm.ProcessorSlot = 0 ( for the Micro800 PLC's) but no luck yet.
I'm able to ping the PLC from my computer but when I try to get all the tags from the PLC, using pylogix, it just shows a message which reads "No Tags Retrieved". I've attached a snapshot of the GUI and the additional lines of code in Pylogix for reference.

Any suggestions would be really helpful. Thanks in advance !!

Pylogix_GUI.PNG Pylogix code add on.PNG
 
Thanks dr.bitboy.

I tried adding the line comm.Micro800 = True but that didn't make it work either. I also added comm.ProcessorSlot = 0 ( for the Micro800 PLC's) but no luck yet.
I'm able to ping the PLC from my computer but when I try to get all the tags from the PLC, using pylogix, it just shows a message which reads "No Tags Retrieved". I've attached a snapshot of the GUI and the additional lines of code in Pylogix for reference.

Any suggestions would be really helpful. Thanks in advance !!

They syntax is comm.Micro800 = True (not Micro820 = True) https://github.com/dmroeder/pylogix/blob/master/pylogix/eip.py#L44

Your code is wrapped in a try/catch, your script is throwing an error because "Micro820" isn't a thing.

Also, you can remove the line setting the processor slot, it is not doing anything in your case. For one, the default value is already zero, two, the Micro800 doesn't use port segment. Setting Micro800 to True omits the processor slot from the packet.
 
Last edited:
That's not quite right, Python blithely creates the .Micro820 attribute to the class when it sees comm.Micro820 = True; see below
Code:
>>> import pylogix
>>> p=pylogix.PLC()
>>> p.Micro800
False
>>> p.Micro820
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'PLC' object has no attribute 'Micro820'
>>> p.Micro820=True
>>> p.Micro800
False
>>> p.Micro820
True
>>>
The .Micro800 attribute not being True is probably still the problem.
 
Thank You dmroeder and drbitboy.

I've started with a fresh copy of pylogix and I've tried using
comm.Micro800 = True and deleted the line that had the Processor Slot set to 0 as well. But it still refuses to connect. I'm able to ping the PLC though.

I disabled all the other network adapters on my computer and tried it again but it still fails to retrieve tags when I press the "GetTags" button on the GUI. Can you please let me know if you'll have faced this issue and any workaround if possible.

Pylogix code add on_1.PNG
 
Does it still say "path destination unknown" when you print ret.Status?

Try creating a simple DINT, then read that.
 
Thank You dmroeder and drbitboy.

I've started with a fresh copy of pylogix and I've tried using
comm.Micro800 = True and deleted the line that had the Processor Slot set to 0 as well. But it still refuses to connect. I'm able to ping the PLC though.

I disabled all the other network adapters on my computer and tried it again but it still fails to retrieve tags when I press the "GetTags" button on the GUI. Can you please let me know if you'll have faced this issue and any workaround if possible.

don't Micro8xx I/O tags start with two underscores? If yes, the tag name _IO_EM_DI_05 (one leading underscore) is non-existent, fix that and it may work?

never mind; it is one underscore.
 
Last edited:
Code:
>>> from pylogix import PLC
>>> with PLC('192.168.0.102') as comm:
...   comm.Micro800=True
...   comm.Read('_IO_EM_DI_05')
...
Response(TagName=_IO_EM_DI_05, Value=False, Status=Success)
The only difference I see is that my code assigned the IP address at PLC object instantiation. OP's code tried comm.IPAddress = '192.168.0.102', which may do nothing other than add an attribute .IPAddress to the object that is never used?

Btw, this saves a statement by assigning the .Micro800 at object __init__, and it also works:
Code:
>>> from pylogix import PLC
>>> with PLC('192.168.0.102',Micro800=True) as comm:
...   comm.Read('_IO_EM_DI_05')
...
Response(TagName=_IO_EM_DI_05, Value=False, Status=Success)
 
Yes, it does. It also prints a warning regarding the setDaemon thread.

I would not use that GUI application until you can get the most basic script working. Like the one you or drbitboy posted. Both of which are correct and will work.

I think I mentioned earlier that the message path destination unknown is a response from the/a PLC. This tells me that pylogix successfully made a connection, the Read function was successful but the PLC does not have the requested tag in the tag database.

Now, that is an I/O point, so it should exist in a Micro820, drbitboy demonstrates this. This is why I suggest making a DINT tag in the PLC, that way you know 100%
 
I would not use that GUI application until you can get the most basic script working. Like the one you or drbitboy posted. Both of which are correct and will work.

I think I mentioned earlier that the message path destination unknown is a response from the/a PLC. This tells me that pylogix successfully made a connection, the Read function was successful but the PLC does not have the requested tag in the tag database.

Now, that is an I/O point, so it should exist in a Micro820, drbitboy demonstrates this. This is why I suggest making a DINT tag in the PLC, that way you know 100%

Thanks dmroeder. I tried using the default SYSVA_CYCLECNT tags in CCW which is a DINT variable. I'll try adding a few more and see if that works.

I think pylogix accesses Global Variables only. I'll do that as well. Thanks once again..
 
Thanks dmroeder. I tried using the default SYSVA_CYCLECNT tags in CCW which is a DINT variable. I'll try adding a few more and see if that works.

I think pylogix accesses Global Variables only. I'll do that as well. Thanks once again..

Yeah only global variables are accessible externally. This is not limited to pylogix.
 
Thank you drbitboy and dmroeder for your guidance.

I'm able to view data now, not in the GUI, but in the SHELL window which opens up. The "ret.Status" line helped me realise that it's working.

Now I'll try exporting data into EXCEL and I'll also try logging data every second.

Thanks for your help..

Pylogix_GUI1.PNG
 
Last edited:

Similar Topics

HOW to communicate with OPTIX and Mitsubishi's Q Series PLC?? PLEASE HELP ME
Replies
0
Views
55
Hello i have a PV+1000 firmware ver 5.10 and a compact logix L18ERM VER 24. I googled and read many posts but still can not make simple button on...
Replies
1
Views
561
Have matched communication parameters of both, DOPSOFT HMI and PLC Fatek. Yet an error keeps appearing "Failed to open port COM1". I believe...
Replies
0
Views
688
Dear Members, Currently, I'm working with Hitect HMI spec PWS6600S-S and PLC FATEK PLC FBS-32MAR2-AC. We plan to do a replacement unit...
Replies
0
Views
754
Hi Guys, Here I have Started to work on some difficult task I hope I will get some solution here. I wanted to communicate ABB CI 840 IO Master...
Replies
2
Views
917
Back
Top Bottom