Mitsubishi MC Protocol Read Node Not connected or timeout

I am not able to establish communication to Mitsubishi PLC. here are some of the setup screens on PLC and Read node. I have tried to change some of the node setting and I am yet to establish connection. Any Idea for me to try?

image

Install node-red-node-ping, can your node-red ping the plc?

Have you turned the PLC off/on after changing settings?

How have you set the ports on the plc? (Show screenshot)

Here is a thread that might help

Looks like I can ping. I was able to ping in CMD

We did not turn it off yet. will try that


Ok got it working by changing built in ethernet port open settings

From Subject Received Size Categories
Jason Meyer 2:18 PM 114 KB

1 Like

using the read node I though i would be able to monitor this PLC value for whenever it changes and not have to use an Inject to see the value thru a debug node? I realize this may be a basic Node-Red question...

[
{
"id": "08a482e7a2022352",
"type": "switch",
"z": "c409bd4bcb4231c2",
"name": "=500",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "500",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 350,
"y": 1420,
"wires": [
[
"4771c477e05effe7"
]
]
},
{
"id": "944050346ac58354",
"type": "MC Read",
"z": "c409bd4bcb4231c2",
"name": "D03804",
"topic": "",
"connection": "8bf9ce709d0bac70",
"address": "D03804",
"addressType": "msg",
"outputFormat": "1",
"errorHandling": "throw",
"outputs": 1,
"x": 160,
"y": 1420,
"wires": [
[
"08a482e7a2022352"
]
]
},
{
"id": "4771c477e05effe7",
"type": "debug",
"z": "c409bd4bcb4231c2",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 570,
"y": 1420,
"wires":
},
{
"id": "8bf9ce709d0bac70",
"type": "MC Protocol Connection",
"name": "PLC1",
"host": "192.168.3.39",
"port": "3001",
"protocol": "UDP",
"frame": "3E",
"plcType": "Q",
"ascii": false,
"PLCStation": "",
"PCStation": "",
"PLCModuleNo": "",
"network": "",
"octalInputOutput": false,
"timeout": "1000"
}
]

flows.json (1.8 KB)

You can use the rbe/filter node to differentiate changes.

My advice it to program the plc to out all values of interest into 1 contiguous area (e.g D1000-D1199) and read all values at once then use buffer-parser to convert the values into book/string/float/int. That way, there are less requests and all data is concurrent.

In order to make code readable and usable it is necessary to surround your code with three backticks (also known as a left quote or backquote ```)

``` 
   code goes here 
```

You can edit and correct your post by clicking the pencil :pencil2: icon.

See this post for more details - How to share code or flow json

ok but it does not report on change of value in the debug still. do i need to put something in front of the MC read node to trigger on change?

[
    {
        "id": "08a482e7a2022352",
        "type": "switch",
        "z": "c409bd4bcb4231c2",
        "name": "=500",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "500",
                "vt": "str"
            }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 1,
        "x": 390,
        "y": 1540,
        "wires": [
            [
                "4771c477e05effe7"
            ]
        ]
    },
    {
        "id": "944050346ac58354",
        "type": "MC Read",
        "z": "c409bd4bcb4231c2",
        "name": "D03804",
        "topic": "",
        "connection": "8bf9ce709d0bac70",
        "address": "D03804",
        "addressType": "msg",
        "outputFormat": "1",
        "errorHandling": "throw",
        "outputs": 1,
        "x": 200,
        "y": 1540,
        "wires": [
            [
                "08a482e7a2022352"
            ]
        ]
    },
    {
        "id": "4771c477e05effe7",
        "type": "debug",
        "z": "c409bd4bcb4231c2",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 610,
        "y": 1540,
        "wires": []
    },
    {
        "id": "c51acb6bb427d696",
        "type": "rbe",
        "z": "c409bd4bcb4231c2",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": true,
        "property": "payload",
        "topi": "topic",
        "x": 370,
        "y": 1620,
        "wires": [
            [
                "8b043a0ebe68d63a"
            ]
        ]
    },
    {
        "id": "43737051c3b45b63",
        "type": "MC Read",
        "z": "c409bd4bcb4231c2",
        "name": "D03804",
        "topic": "",
        "connection": "8bf9ce709d0bac70",
        "address": "D03804",
        "addressType": "msg",
        "outputFormat": "0",
        "errorHandling": "throw",
        "outputs": 1,
        "x": 200,
        "y": 1620,
        "wires": [
            [
                "c51acb6bb427d696"
            ]
        ]
    },
    {
        "id": "8b043a0ebe68d63a",
        "type": "debug",
        "z": "c409bd4bcb4231c2",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 610,
        "y": 1620,
        "wires": []
    },
    {
        "id": "8bf9ce709d0bac70",
        "type": "MC Protocol Connection",
        "name": "PLC1",
        "host": "192.168.3.39",
        "port": "3001",
        "protocol": "UDP",
        "frame": "3E",
        "plcType": "Q",
        "ascii": false,
        "PLCStation": "",
        "PCStation": "",
        "PLCModuleNo": "",
        "network": "",
        "octalInputOutput": false,
        "timeout": "1000"
    }
]

Yes. The MC protocol node does not poll the plc. You will need to use an inject set to repeat every X seconds.

hmm... ok for my application I kind of need to see the update faster than every second. To your knowledge is there another Open System protocol that polls with a Mitsubishi PLC or can I use another node in front of the MC read node besides an Inject since it seems I am limited to 1 second?

Why exactly? Please explain.

Not on node-red.

Yes, & I will tell you after you answer the first question (I dont mean to question your capabilities but sometimes people believe they MUST poll faster than 1 sec to catch something like a button press - but a simple ladder mod can be used instead)

In the PLC a bit turns on about 2 times a second in which I then need to trigger my scanner to turn on for 200-400ms

General Question: in your opinion is Nod-Red an reliable application in an industrial environment? I mean as long as the PC hardware chosen or setup is.

Yes it is reliable. Is/Was for me. But you have to realise network delays, non deterministic nature of Ethernet & the fact that mitsi Ethernet comms are (in my experience) notoriously unreliable (ok, so TCP isnt great but the UDP comms were a bit more stable)

This sounds like it is more suited to field network integration.

  • What is "the scanner"?
  • What field networks does the scanner support?
  • What do you do with the scanner results? Process them in node-red?
  • How "repeatable" / accurate is the timing? are you talking about some moving production line?
    • I ask because MC Protocol over ethernet is non deterministic. Additionally, in Q series (and below) the network stack is part of the overall PLC SCAN - meaning if your ladder instructions cause a delay, the COMMS will not be services until after the ladder scan (meaning jitter/variation in timing)



PS, the answer to the other question is: you can enter 0.25 into the inject repeat to achieve a 250ms pulse. NOTE: you will need to use an RBE/filter node to check that the value has changed otherwise you would trigger this "scanner" repeatedly.

Matrix 220 Data Sheet _ English A4 (1).pdf (1.6 MB)
This should answer the first 2 questions

-For the scanner results we are reading them into node-red thru TCP/IP and then having Node-Red write to an MS Sql server instance on a server in addition to writing to a locally installed MS Sql server instance in the event the network or server goes down we can sync the databeses.

-Repeatable.. The product moves thru the machine at a repeatable rate but sometimes there is no product in that position so the machine does not trigger a scan.