Motor signals defined in pm866 controller want to communicate it with other controller
Motor signals are defined in pm866 controller and i want to communicate these signals with other controller and want to start the motor for example motor signals are defined in Raw mill controller and want to communicate with packing plant controller and then to start the motor from packing plant controller and from packing plant graphics page.
Voted best answer
This is a programming problem - and there are many ways to solve it. Most of them depend on exactly how you programmed your motors.
However, you *ALSO* describe an architecture problem that you need to address properly, before you try to force a badly engineered programming solution.....
The Motor Control Function block ***MUST*** live in the same controller as the I/O. You cannot reliably have I/O in one controller and the core logic that controls that I/O in a different controller. This is just basic engineering and trying to work around it will cause you more trouble than you ever want to live with. ( the same rule applies to everything - *All* I/O and the core logic for that I/O must *always* live in the same application in the same controller, This is true for Valves, Motors, PID's etc. )
You can send Remote Start and Remote Stop signals to the Motor Control Function Block from another application in another controller. But you must always assume that this comms link can fail, and design your logic as required. You probably don't actually need to do very much. The core motor functions - including Manual stop, interlocks etc do not require any special handling and it probably doesn't matter if a remote start of stop command doesn't arrive.
Communication between applications is best done using Communication Variables (Comm Vars) - Only use MMS if your 800xA system is version 5 or earlier and doesnt support CommVars.
However, you *ALSO* describe an architecture problem that you need to address properly, before you try to force a badly engineered programming solution.....
The Motor Control Function block ***MUST*** live in the same controller as the I/O. You cannot reliably have I/O in one controller and the core logic that controls that I/O in a different controller. This is just basic engineering and trying to work around it will cause you more trouble than you ever want to live with. ( the same rule applies to everything - *All* I/O and the core logic for that I/O must *always* live in the same application in the same controller, This is true for Valves, Motors, PID's etc. )
You can send Remote Start and Remote Stop signals to the Motor Control Function Block from another application in another controller. But you must always assume that this comms link can fail, and design your logic as required. You probably don't actually need to do very much. The core motor functions - including Manual stop, interlocks etc do not require any special handling and it probably doesn't matter if a remote start of stop command doesn't arrive.
Communication between applications is best done using Communication Variables (Comm Vars) - Only use MMS if your 800xA system is version 5 or earlier and doesnt support CommVars.
Answers
Hi,
You can define the Start, Stop and Feedback signals as Communication Variables, So that you can use the same communication variable in other controller to operate the motor.
You can define the Start, Stop and Feedback signals as Communication Variables, So that you can use the same communication variable in other controller to operate the motor.
In case you have Minerals Library, to control a MOT1 Object from a GROUP on a different Controller, one solution is to use the Function Block "StepOneGroup".
This Block has to be added in the same Application as the Group and connect GrpDrvBus, GrpQStop and GrpPCCAEInd to the respective Variables on the Group GrpDrvCon Parameter.
Define 5 Communication Variables, Names need to be unique so use the Tagname of the Motor:
Tag_Start and Tag_Stop as direction "out" from the StepOneGroup and "in" on the Single Control Module where the Motor is located, Tag_Run, Tag_Rfs and Tag_OutOfSrv in the opposite direction.
Define some moves in the FBD for the Motor to write the Tag_Start to IO.In.SeqStart and Tag_Stop to IO.In.SeqStop, in other direction for IO.Out.Run, IO.Out.Rfs and IO.Out.OutOfSrv.
On the StepOneGroup the Communication Variables connect to the Parameters according the Name Suffix, connect Parameter OffCond to the inverted Tag_Run (for example with NOT Function), and connect the "StepName" to a string matching the Tagname of the Motor, other Parameters like GrpStartStep configure as you would do on the MOT1 itself if it was connected directly.
You can as well refer the Manual "Group Objects" found in Documentation Structure section StepOneGroup which shows an example for the use of this block, as well for the case if the block is connected to more than one Group.
This Block has to be added in the same Application as the Group and connect GrpDrvBus, GrpQStop and GrpPCCAEInd to the respective Variables on the Group GrpDrvCon Parameter.
Define 5 Communication Variables, Names need to be unique so use the Tagname of the Motor:
Tag_Start and Tag_Stop as direction "out" from the StepOneGroup and "in" on the Single Control Module where the Motor is located, Tag_Run, Tag_Rfs and Tag_OutOfSrv in the opposite direction.
Define some moves in the FBD for the Motor to write the Tag_Start to IO.In.SeqStart and Tag_Stop to IO.In.SeqStop, in other direction for IO.Out.Run, IO.Out.Rfs and IO.Out.OutOfSrv.
On the StepOneGroup the Communication Variables connect to the Parameters according the Name Suffix, connect Parameter OffCond to the inverted Tag_Run (for example with NOT Function), and connect the "StepName" to a string matching the Tagname of the Motor, other Parameters like GrpStartStep configure as you would do on the MOT1 itself if it was connected directly.
You can as well refer the Manual "Group Objects" found in Documentation Structure section StepOneGroup which shows an example for the use of this block, as well for the case if the block is connected to more than one Group.
Theoretically, with 800xA and Select-I/O, a solution with I/O (tag) shared on the fieldbus (network) is possible. Whether or not it is a good engineering solution in your case I can't tell...
by backdraft
I would answer use Communication Variables, but maybe it's difficult to help you for a specific case if, as it sounds, you don't have experience with anything. Do you have some screenshots of the Code where your signals are defined and the motor as well?
by prabhatdixit_07 Rank: 242 on 4/13/2020 12:58:06 AM | Like (0) | Report
I know very well what to do as I have pump tag as 811 wp6 water pump it's defined in PKG plant controller I want to start in group, as want to add this pump in group start of rmill section controller i.e. Pm 866,right now it's operated manually from DCS in manual start so how it's signals or Motocon parameters as MOTP details will be communicated to pm866 controller so that it will be added in group sequence start.
by backdraft
What library do you use? What is the type of Group Sequence Block or is this with SFC?
by prabhatdixit_07 Rank: 242 on 4/13/2020 7:56:23 AM | Like (0) | Report
BMI standard group_type and its in FBD.
Add new comment