Cannot control internal relays

I am trying to control variables within Mitsubishi FX2U and FX3U PLC units using an Ewon Flexy 205, its M2Web Talk2M online portal, and a viewON program I’ve made. (I am using GX Works 2 and 3 for monitoring and editing PLC programs, and GT Designer3 for editing the PLC’s associated HMI panel program.) My problem is that I cannot figure out how to control internal relays with the Flexy, despite being able to control data registers.

I can control data registers (e.g. “D182”) via my viewON program, and by the M2Web Talk2M online portal (i.e. when selecting Edit Value → Apply in View mode in the Tag → Values portal section). For example, I can change the number there from “15” to “13”. However, I cannot control internal relays (e.g. “M486”) with either my viewON program or in the M2Web Talk2M online portal. In the portal, when I try to edit an internal relay’s value from 0 to 1 or vice versa using the same steps I just outlined for editing data register values, the value quickly returns to what it was before I attempted to change it. Monitoring the variable value in GX Works’ Monitor Read mode indicates that the internal relay value doesn’t change at all when I do this. This remains true for the internal relays regardless of whether their datatypes are floating, or boolean, etc.

I’ve also tried to determine whether this is because internal relays (“M”) are datatypes that cannot be changed externally on the PLC units. This doesn’t seem to be the case because I can change internal relay values (i.e. 0 to 1 and vice versa) in both in GX Works (in “Monitor Write” mode) and via the HMI panel (made with GT Designer). Moreover, although Mitsubishi PLC manuals state that “internal relays cannot latch”, this is only with respect to power cycling (i.e. "All internal relays are turned off when: “Power is switched from off to on; or Reset is performed.”).

Any and all advice would be appreciated.

Im not aware of anything in the Flexy that would prevent the it from controlling a relay. Double checking in the Mitsubishi polling user guide I see B listed as a supported memory type. I don’t think this is being limited on the Flexy side. Where you can control other registers we can rule out the configuration of the IO server being the issue.

Does it show the current state of the relay accurately? Have you tried changing the value from the tag view page? Do you get the same result?

Do you receive any error message? Either on the tag page or in the event logs? What about on the PLC?

Deryck

Hi Deryck,

Thank you for the prompt response! In sum, considering your guidance, it seems like it’s either a TCP issue, or internal relays (“M”) are one of many datatypes that cannot be modified by the Flexy 205.

Re: Mitsubishi polling user guide
I didn’t see that guide before. However, what is “B” when you asked about “B listed as a supported memory type”? Did you mean “M”, the memory type of an internal relay?

Appendices A.1 and A.2 seem to give a lot of information, but I’m not sure I fully understand. In A.1, there is no “Acceptable Modifier” shown for internal relays (“M”). But all modifier types (i.e. S,W,L,D,F) are acceptable modifiers for data registers (“D”). This makes sense because, as I said in my first post, I can edit data registers without problem. Does that mean that all the datatypes without acceptable modifiers cannot be edited, including internal relays? (And that’s why I can’t modify internal relays?)

However,

  1. Below A.1 it states that “If no modifier is included, the modifier-type in bold will be used.” What does that mean? I don’t know what is “the modifier-type in bold”, since nothing is bolded.
  2. A.2 seems to state that inputs (“X”) can be modified, given that input X14 is shown in the “Examples of modifiers use for MELSEC”, even though A.1 shows no acceptable modifiers for inputs.

Re: Your questions
Does it show the current state of the relay accurately?
Yes. The current state of the relay is shown accurately in the tag view page (and in GX Works2 while monitoring).

Have you tried changing the value from the tag view page? Do you get the same result?
Yes. I’ve tried and gotten the same result. I meant to convey that in my first post, calling the tag view page as part the “M2Web Talk2M online portal”, where I tried to change the internal relay’s value from 0 to 1 and vice versa.

Do you receive any error message? Either on the tag page or in the event logs?
No error message occurs in the tag values page when I try to change the value; it just reverts to the original value after a fraction of a second (e.g. back to 0 if I’m trying to change it from 0 to 1). The Event Log shows this event occurring when I fail to change an internal relay from 0 to 1 or vice versa:

Event: 35906
Description: “mimc-MELSEC E1 command not supported in tcp mode”
Originator: mimcsrv

I found references to it in rg-0007-00-en-reference-guide-io-servers.pdf but I didn’t determine if it’s the same as in this message. Regarding TCP mode, given that I’m using an FX3U now (although my company will hopefully use FX5U’s with Flexy 205’s elsewhere), in Tag Configuration → I/O Server Setup for my test internal relay M486, I tried changing “M486,FX3UCPU,TCP,192.168.3.53,5001” to “M486,FX3UCPU,UDP,192.168.3.53,5002” to see if UDP mode would work. (I followed the example addresses in “rg-0007-00-en-reference-guide-io-servers.pdf”, page 77.) It didn’t work. The same behavior occurred as before, except the Status/Quality column for M486 has an error stating “No communication”.

I then repeated this after creating and enabling another MELSEC IO Server, “Topic B”, with the parameters “FX3UCPU,UDP,192.168.3.1,5002” (Note: MELSEC “Topic A” has been “FX3UCPU,TCP,192.168.3.1,5001” all along), clicking “Update” (on another try I also clicked “Init”). Again, didn’t work, same behavior as before.

I also tried disabling Topic A (i.e. the TCP MELSEC IO server) and changing the Topic B UDP MESLEC IO server to port 5001, without success.

What about on the PLC?
The error LED on the FX3U has never flashed when I’ve attempted to change M486, or other internal relays “M”. (“PLC Diagnostics” shows a single minor error while monitoring the program, but is it just because of an inconsequential divide-by-0 error for a DIV operation likely due to our machine not being on, just the control panel; it has no bearing on internal relay M486.)

Hi @emb, Thank you for the clear response.

Yes, sorry for the mix up.

A.1 is giving the list of memory types while A.2 is providing a description of the modifiers that can be used for registers. The modifiers tell the ewon the data type / how to interpret the register. It is modifying how to interpret the bytes read, such as a signed Double vs float. Both consist of 4 bytes but will represent different numbers.
Since a relay has just a single bit representation there is no need to define its type.

I think this might be the answer to this issue but I am double checking with a colleague. I thinking the request is not supported for the type of connection the Ewon is making. I was thinking the PLC would have some log message /error regarding the request possibly give more insight into the reason.

I am checking with a colleague and will follow up with you shortly.

Deryck

1 Like

Hi @emb,

It looks like this is a limitation of the Flexy. It is not able to write to these registers. Discussing this with a colleague they recommend using D memory types to set values to them. It was not clear if the M data types are already mapped to D registers or if you would need to do this in programming.

Deryck

Hi Deryck,

Thanks! I was thinking of doing that workaround after seeing it mentioned in another thread for a different FX3U issue:

I’d ask if there’s a list of datatypes that Flexy can/cannot write to, but I assume I’ll learn that myself on a case-by-case basis.

Thanks for your help! :slight_smile:

I think you just got “lucky” with this one not being supported. Generally if we can read it we can write to it unless it is a read only data type on the PLC.

1 Like