Hi all,
I want to develop an AOI based around Rockwell's PIDE instruction to use in ladder diagrams.
The problem I'm running into is the following : I want to allow local/remote SP control. While remote, local SP should equal remote SP to allow for the bumpless transfer. I know the PIDE instruction does that natively : in program mode, SPOper = SPProg. That doesn't work if you specify a tag as input, it is the SPOper input itself that is internally updated. So if you link an input reference (say Manual_SP) to the SPOper pin, the internal bumpless doesn't work since the reference overwrites SPOPer continually.
It works if I make "Manual_SP" an alias of SPOper. Then I can change to local control and the value of "Manual_SP" is the same as SPProg was before the mode change. However, I would like the have the possibility to condition the setpoint before it being sent to the instruction. If "Manual_SP" is an alias of SPProg, I can't use it as an input reference on any instruction. So for example, if I want to make a setpoint ramp that works in both remote and local modes then I don't have that possibility.
I've tried to handle the bumpless myself outside of the PIDE, but things seem to be a bit iffy in Rockwell FBD when you have two sources that can write to a tag, which I understand can't be done with FBD instructions. For example, in ladder, I could just continually MOV "Software_SP" to "Manual_SP" while in remote mode. If the rung condition becomes false then the MOV simply does not happen and the HMI can now send values to "Manual_SP". Doing something similar with a SEL instruction doesn't work. If I disable the EnableIn condition, then the output may not be updated by any source, not only the SEL instruction.
The compromise I can make is that SP conditioning doesn't happen in local mode, but I'd rather have the freedom.
I'm not too used to FBD so these may be newbie questions, but thank you for any ideas !
I want to develop an AOI based around Rockwell's PIDE instruction to use in ladder diagrams.
The problem I'm running into is the following : I want to allow local/remote SP control. While remote, local SP should equal remote SP to allow for the bumpless transfer. I know the PIDE instruction does that natively : in program mode, SPOper = SPProg. That doesn't work if you specify a tag as input, it is the SPOper input itself that is internally updated. So if you link an input reference (say Manual_SP) to the SPOper pin, the internal bumpless doesn't work since the reference overwrites SPOPer continually.
It works if I make "Manual_SP" an alias of SPOper. Then I can change to local control and the value of "Manual_SP" is the same as SPProg was before the mode change. However, I would like the have the possibility to condition the setpoint before it being sent to the instruction. If "Manual_SP" is an alias of SPProg, I can't use it as an input reference on any instruction. So for example, if I want to make a setpoint ramp that works in both remote and local modes then I don't have that possibility.
I've tried to handle the bumpless myself outside of the PIDE, but things seem to be a bit iffy in Rockwell FBD when you have two sources that can write to a tag, which I understand can't be done with FBD instructions. For example, in ladder, I could just continually MOV "Software_SP" to "Manual_SP" while in remote mode. If the rung condition becomes false then the MOV simply does not happen and the HMI can now send values to "Manual_SP". Doing something similar with a SEL instruction doesn't work. If I disable the EnableIn condition, then the output may not be updated by any source, not only the SEL instruction.
The compromise I can make is that SP conditioning doesn't happen in local mode, but I'd rather have the freedom.
I'm not too used to FBD so these may be newbie questions, but thank you for any ideas !