Motor signals defined in pm866 controller want to communicate it with other controller
Voted best answer
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.
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.