MZFarhad
Member
Greetings everyone.
Apologies for the long post in advance.
For some background
I'm an Electrical and electronic engineering student, and I recently joined a research group. My first job was to use a PLC to control a temperature controller connected to an oven via MODBUS, and then connect the PLC to a router so that it can be monitored/ controlled from anywhere in the world. This was the first time I ever touched a PLC, but some how, through a lot of trial and error I managed to get it to work.
My next, and current task is to use a Delta AS218RX PLC to control/ monitor an inverter via Modbus, but the devices seem to work differently. I can't seem to get it to work.
I am unable to get the values that I need from the inverter.
When I used the temperature controller I could just setup the com1 settings in hwconfig, and then in the program use a sending request for com1, then set a NC contact followed by a MODRW function block, then at the end set the data com1 complete coil.
It worked well, and I thought it would be a simple carry over to get it to work on the inverter, It does not.
So I started with just trying to read one value, (Measuring the output voltage) which I managed to do, however the value would not change, It would stay constant, at around 229 V. If I switched the inverter off, the value would not drop, so I tried using a pulse contact, and this solved the problem. The value would refresh with each pulse.
My problem now is that I can't seem to do more than one reading. I have attached a picture of the current program, but it does not work.
My thinking is that I have to open and close a contact for each MODRW function, but I can't seem to get it right.
I have almost no experience programming PLC's and lack fundamental basics, which is why I am asking for help here.
My thinking is that in the program I have to set a contact as closed, take the reading, then open the contact and close the next one, and repeat this process so that all the reading are taken.
Im not sure where the issue is in the code, but it does not work, the contacts m49, m50 and m51 do not open and close as intended.
Im sure I am making a stupid mistake, but I am currently stuck. any help would be greatly appreciated.
Apologies for the long post in advance.
For some background
I'm an Electrical and electronic engineering student, and I recently joined a research group. My first job was to use a PLC to control a temperature controller connected to an oven via MODBUS, and then connect the PLC to a router so that it can be monitored/ controlled from anywhere in the world. This was the first time I ever touched a PLC, but some how, through a lot of trial and error I managed to get it to work.
My next, and current task is to use a Delta AS218RX PLC to control/ monitor an inverter via Modbus, but the devices seem to work differently. I can't seem to get it to work.
I am unable to get the values that I need from the inverter.
When I used the temperature controller I could just setup the com1 settings in hwconfig, and then in the program use a sending request for com1, then set a NC contact followed by a MODRW function block, then at the end set the data com1 complete coil.
It worked well, and I thought it would be a simple carry over to get it to work on the inverter, It does not.
So I started with just trying to read one value, (Measuring the output voltage) which I managed to do, however the value would not change, It would stay constant, at around 229 V. If I switched the inverter off, the value would not drop, so I tried using a pulse contact, and this solved the problem. The value would refresh with each pulse.
My problem now is that I can't seem to do more than one reading. I have attached a picture of the current program, but it does not work.
My thinking is that I have to open and close a contact for each MODRW function, but I can't seem to get it right.
I have almost no experience programming PLC's and lack fundamental basics, which is why I am asking for help here.
My thinking is that in the program I have to set a contact as closed, take the reading, then open the contact and close the next one, and repeat this process so that all the reading are taken.
Im not sure where the issue is in the code, but it does not work, the contacts m49, m50 and m51 do not open and close as intended.
Im sure I am making a stupid mistake, but I am currently stuck. any help would be greatly appreciated.