Step7 - Problems with S/W controllers FB41 & FB58

RMA

Member
Join Date
Sep 2004
Location
North of Hamburg, Germany
Posts
2,052
This is slowly driving me nuts!

I've got two loops to control in my current project:

1) Steam pressure, for which I'm using FB41

2) Temperature control of cooling water, for which I'm using FB41

I'm using values for Gain and I-time from the customer (no D-time), in the 2nd case the gain is negative because it's a cooling loop.

I'm pretty sure I've got all the parameters set correctly and both controller blocks are sitting there glowing green and apparently running, but I can vary the Setpoint and PV values any way I like but the output - LMN_PER remains stubbornly at 0, or to be precise, in the case of FB58 at the 25% which is the minimum value for the cooling water regulator valve.

Has anybody any thoughts on what the problem might be?

PS, I haven't listed all the parameters, because it's a bit too much, but, yes, P_SEL and I_SEL are both set to "1".
 
Last edited:
Hello Roy;

I seem to remember a post where you said you had the PID FB41 running.
You are calling your function blocks in OB35?
You are setting parameter Com_Rst (complete restart) in OB100, and resetting it at the end of your OB35 after the PID blocks have been launched? Unless this is done properly, calculations will not be processed in your PID blocks, and no outputs will be generated.
If this doesn't apply, I hope someone else can come with a more complete solution.
Hope this helps,
Daniel Chartier
 
Hi Daniel,

You are setting parameter Com_Rst (complete restart) in OB100, and resetting it at the end of your OB35 after the PID blocks have been launched? Unless this is done properly, calculations will not be processed in your PID blocks, and no outputs will be generated.



This looks like it might be the source of the problem.

I'm using the "First-Time"-through Bit, that I set in OB100 and then Clear at the end of OB1 as the "Trigger" for COM_RST - possibly it's not being left set for long enough. I'll change it to clear at the end of OB35 (yes, I'm calling both Blocks in OB35, which is set to 100ms and the CYCLE parameter of the Blocks is set accordingly).

Thanks

Roy
 
Another primitive thought - is the loop actually in automatic?
If the FB41 block is being executed in manual, it shows green as expected, the input (PV) is read and scaled, the errors are calculated etc etc, but the output is decoupled from all of this. You should check that the MAN_ON parameter is '0' or false. It's set as '1' as default in the IDB (reasonable enough) unless you change it.

Ken
 
Thanks Ken, that was the (last?) problem. I don't have to cater for a manual/auto change-over, so I had left the MAN_ON parameters empty. Sure enough, as you said, in the IDB they're set TRUE.

Regarding COM_RST, there's an output QC_ACT in FB58 which tells you that the controller is up and running. I'm now using this to reset my "First_Time" Flag. For the case where I may only be using FB41, I haven't been able to find a similar output parameter there, is there one, or something similar?
 
Hi Roy

I'm not convinced the COM_RST is such a critical issue in this case. My understanding and experience of this is that it performs a clear/reset on all the internal variables of the FB41 calculations and gets everything back to default, ready to start executing with up to date values. If you or your process can afford a few moments of sluggishness when starting up then I think you can maybe afford to leave COM_RST well alone. If you were doing something scan-critical that would not be the same. Temperature control is generally quite forgiving. By all means build in the COM_RST control (true on first start up, false after block has re-initialised) but I wouldn't expect every block to have an equivalent parameter, nor would I expect to re-write my code extensively for this.

Regards

Ken
 
Hi Ken,

The project I'm working on at present is for a caustic soda recovery plant, where everything is started by operator action. As a result it will never happen that on start-up one of the controllers needs to be active. I guess I'll leave COM_RST as it is at present clearing the "First_Time" Bit after the QC_ACT Bit from FB58 comes and just assume that the other controllers have also correctly initialised in this time.

In the event of a power-fail, everything is reset on power-recovery and the plant then goes into STOP mode and needs to be restarted manually by the operator.

Cheers

Roy
 

Similar Topics

Hi all, I will try and give as much info as possible to begin with but I am a graduate thrown in at the deep end so bear with me please. Upon...
Replies
12
Views
5,301
Hi Im trying to use SFC20 BLK Move in a piece of SCL code in Step7. I need to copy/move one string[16] in a DB to another DB place ! If a block...
Replies
5
Views
13,501
Would anybody like to have a look at the attatched source file and see if they can come up with a suggestion for what's wrong with it. Initially...
Replies
10
Views
5,219
Can somebody have a look at the appended code. I think I've got to the point where I'm seeing what I expect to see instead of what's really there...
Replies
12
Views
5,368
I've got a production line station which has two Cognex cameras in it to check that components are present and correctly orientated. The second...
Replies
7
Views
3,959
Back
Top Bottom