pinguinjkeke

FX3U Modbus communication

38 posts in this topic

I have FX3U16MT/DSS base module with FX3U-485ADP-MB connected to the left side of it. Also I have FX3U-RS232BD, so the channel of ADP485 is 2(Am I right?). I'm connecting FR-E720S-030SC to FX3U-485ADP-MB via invertor's RJ45 port with cable I made by this scheme: I don't understand: SG should be connected to SDA or input "5" on invertor? Should i put both SG1 and SG7 grounds to SG on 485ADP? I configured my invertor with FR Configurator SW3 for modbus and set station number to 1. (baud 192, stop bit 1, Even, response time 9999, no CR/LF, proto 1(modbus)) I wrote a test program with no success: LD 8411 MOV H1097 D8420 MOV H1 D8421 MOV K2000 D8429 MOV K400 D8430 MOV K10 D8431 MOV K3 D8432 MOV H1 D8435 MOV K100 D8436 LD M8000 ADPRW H1 H1 K0 K4 Y000 I think that Y0 should be open after command execution but it doesn't. On program execution I see only 485ADP's SD lamp blinking one time per second.

Share this post


Link to post
Share on other sites
You should connect: SG (Inv) -> SG (ADP) RDA (Inv) -> SDA (ADP) RDB (Inv) -> SDB (ADP) SDA (Inv) -> RDA (ADP) SDB (Inv) -> RDB (ADP) If that doesn't do it, try swapping the A and B (e.g. RDA -> SDB) and vica verca. You should not, as far as I know, connect Pin1/Pin7 -> Pin5.
1 person likes this

Share this post


Link to post
Share on other sites
Thank you for so fast and so informative reply. I tried to do that and both 485-ADP's RD and SD LEDs are ON now. But my program still gives no signal to Y0. Is my program right? And I don't understand how to send Engine start command to inverter with FX3U via modbus?
1 person likes this

Share this post


Link to post
Share on other sites
Could you post a screenshot of your program? I don't remember exactly in my head, but maybe you should wait with the ADPRW until the communication parameters are ready (after init)? Also; when making changes to the parameters (e.g. speed setting, parity and so on) remember to power cycle the PLC since parameter changes to the ADP (and BD) cards aren't active until a power cycle has completed.
1 person likes this

Share this post


Link to post
Share on other sites
This is my program. I'm using online monitor with my FX3U. As you can see M8029 is off and it means command not completed as far as I know. EDIT: M8029 blinking 1 time per 3-5 seconds. Edited by pinguinjkeke
1 person likes this

Share this post


Link to post
Share on other sites
I don't remember it in my head, will have to check it out tomorrow... Will post back then unless someone else beats me to it...
1 person likes this

Share this post


Link to post
Share on other sites
Per the manual for FR-E720 the only supported commands for Modbus Communication is: H03 (Read Holding Registers) H06 (Write single register) H08 (Diagnostics) H10 (Write multiple registers) H46 (Read Access log registers) You should change your code by starting to read only Holding Registers (Code: 03), and read them into some dataregisters. E.g. Read only register 40014 which is running frequency. To read running frequency into D0: LD M8000 ADPRW H1 H3 K14 K1 D0
1 person likes this

Share this post


Link to post
Share on other sites
No success. Firstly, I found error in program. I used 8402 error register instead of 8422. D0 is always zero when I'm executing LD M8000 ADPRW H1 H3 K14 K1 D0. Maybe I have problems with wiring? The connector is done by this scheme and connected to invertor. White-Blue: RDA Blue: RDB White-Green: SDA Green: SDB White-Brown and White-Orange: SG (Also tried to connect only one of this two to SG and getting the same) Edited by pinguinjkeke

Share this post


Link to post
Share on other sites
Try to remove the BD card just for testing, and change everything to channel 1.
1 person likes this

Share this post


Link to post
Share on other sites
I can't do that cause if I remove BD there will be no place to mount 485ADP. I have no any other adapters. I tried to swap SDA-SDB RDA-RDB. Now RUN LED on the invertor is blinking and PU is blinking but slowly and invertor shows PS code (engine stopped by remote panel) And should I configure CH2 in "PLC Parameter" section in the GX Developer? It's configured now, but I'm not sure it's right. I tried many variations of this params, but it makes no result. And what about resistor of the 485ADP? As far as I know I'm using two-pair connection and I should set it to 300 Ohms? Edited by pinguinjkeke

Share this post


Link to post
Share on other sites
If the inverter now shows stopped by remote we are getting somewhere. It means that the inverter is in remote operation (Modbus). Are the SD/RD LED's on the ADP blinking now? Which parameters did you change in the inverter? You know you can set it to run/stop locally, and just read out values using Modbus right? Maybe that's a better start, and expand it when you know it's working? It would be nice if you could start the inverter locally, then read out the frequency via Modbus just to verify it's working... It doesn't matter what you do in GX Developer for channel 2 since you are writing it manually in the program, so the parameters are overwritten when the program starts executing.
1 person likes this

Share this post


Link to post
Share on other sites
When I using connection scheme: SDA->RDA SDB->RDB RDA->SDA RDB->SDB SG->SG Both RD and SD LEDs on 485ADP are blinking. When: SDA->RDB SDB->RDA RDA->SDB RDB->SDA SG->SG Only SD is blinking 1 time per second and inverter could show PS at any moment. But with both methods even when inverter started locally I can't read frequency. I'm starting inverter, clicking PU/EXT to switch to PU mode and then START button I think that the first connection method is right. Inverter parameters: Pr. 117 PU Communication station nubmer: 1 (Is that parameter will be Modbus station number?) Pr. 118 PU Communication speed: 192 (19200 bods) Pr. 119 PU Communication stop bit length: 0 (means 8bit operation with one stop-bit) Pr. 120 PU Communication parity check: 2 (With Even parity check) Pr. 123 PU Communication waiting time setting: tried 9999(by the data recieved) and 10ms like in my program. Pr. 124 PU Communication CR/LF prescence/absence selection: 0 (without CR/LF) Pr. 549 Protocol selection: 1 (Modbus RTU)

Share this post


Link to post
Share on other sites
We need to know ALL parameters you have changed. E.g. Operation mode and so on. Yes, I agree, the first connection scheme must be the correct one since both RD and SD are blinking (this is correct).

Share this post


Link to post
Share on other sites
Thats all parameters I changed. Should I set any other parameters?

Share this post


Link to post
Share on other sites
Try the following parameters: 79 -> 6 (Switchover mode, between PU/EXT/NET) 550 -> 2 (PU is the command source when NET operation mode) You want to set the inverter to Start/Stop via the PU unit, and simultanously read out the frequency. Try pressing the PU/EXT button while inverter is running, and let it go into NET operation mode too if it won't work initially.
1 person likes this

Share this post


Link to post
Share on other sites
Ok, I set this parameters and still nothing. It doesn't going to NET mode. I tried to connect inverter over USB to PC and set NET mode manually and I recieved the E.PUE error.

Share this post


Link to post
Share on other sites
Try setting 550=2 (PU is command source even if NET operation). Also: Is it impossible to put the inverter into NET mode? The NET mode is essential to the communication, but it should be possible using the PU/EXT button on the PU unit.
1 person likes this

Share this post


Link to post
Share on other sites
Also: If the above doesn't work, try to change reading to "15" instead of "14" in case the holding register list is offset by 1, which would cause the reading of 40014 to be incorrect.
1 person likes this

Share this post


Link to post
Share on other sites
I set 550 to 2 as you said earlier. I can set NET mode only via FX Configurator SW3. Or there any other ways to do it? And I'm recieving E.PUE error on the inverter and I can't use the PU/EXT button.

Share this post


Link to post
Share on other sites
Will have to check it out some more... If you change the read setting to 15 instead of 14 in the ADPRW instruction, does that help? Also, by following the manual you can also read out any error codes/exception codes you receive. Could you do a small sequence program reading out the error(s). That would be much helpful.
1 person likes this

Share this post


Link to post
Share on other sites
Nothing happens when I changing K14 to K15. There is a problem with communication settings, I think. But how to recognize the full error?

Share this post


Link to post
Share on other sites
If M8029 AND M8422 is on simultaniously you can move the content of: D8422 (Modbus Error Code) D8423 (Modbus Error Details) D8424 (Error Step#) into separate dataregisters, but only when they are on at the same time. That way, every time there is an error you will move the contents into dataregisters that you can read out. Do this in your program and post back the values. If both SD/RD are blinking as they should, communication is going, but maybe there is an error in the message or data somewhere...
1 person likes this

Share this post


Link to post
Share on other sites
D8422 = 212 (Exception response error) Don't understood what is it. D8423 = 770 D8424 = 44 And I don't know how to read other codes. It isn't described in FX3U Modbus Manual. Edited by pinguinjkeke

Share this post


Link to post
Share on other sites
Exception response error means that the slave could not "understand" what the master sent. So in essence you now have established communication; the master sends data, the slave cannot interpret it and sends an exception response. However this means that the master also receives the exception response from the slave, so they kind of talk to eachother. Could you post a new screenshot of your code to see how it looks right now?
1 person likes this

Share this post


Link to post
Share on other sites
I read examples from FR Configurator SW3 and have a succsess reading Pr. 41004! LD M8000 ADPRW H1 H3 H3EB K1 D0 0x3EB = 1003. We counting from 0 so 1003 - the 4th parameter. I tried to read other parameters and all success! LD M8000 ADPRW H1 H3 K1001 K1 D0 - returns the Pr. 2 But I can't read 40014 register. I tried K13, K14, tried convert it to hexademical - no success. ADPRW H1 H6 K13 K4000 D1: tried to write to register and still no success.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now