The commands, FBPIC and FBPOC setup the cyclic part of the Profibus data packet. Basically, they state what information the PAD and the PED of the data packet will represent.
These commands will NOT properly execute when placed inside a program. One must either type the commands in at the terminal, or place them before the first DEL in the program file (.prg). It is acceptable to place them inside a program, so on upload the values for FBPOC and FBPIC will be seen. But, upon download, they need to be copied outside of the program so they are properly executed.
Also, for the new settings to take place, a RESET command (or power cycle) must be issued.
What complicates things more, is if one inserts the two commands in a program, but does not type the two commands in at the terminal or does not type them outside of the programs in the Program file (.prg), the values of FBPIC and FBPOC will falsely report back the new values. So, when they query the FBPIC and FBPOC commands, they report back the values as set in the program file they downloaded. However, the actual proper execution of the commands did not happen, so they are not properly configured on the drive.
As an example, if FBPOC and FBPIC are set to 0,0,0,0 and you download a program with the commands FBPIC1,2,0,0 and FBPOC1,2,0,0 to the controller, FBPIC and FBPOC will not change until you execute PROG1 and do a RESET (power cycle). Once PROG1 and the Reset are executed, FBPOC and FBPIC will change in value. Thus, when queried, FBPOC and FBPIC will report back 1,2,0,0. However, when checking those bits over the Profibus, they will not update and have no function. If you now type FBPIC1,2,0,0 and FBPOC1,2,0,0 in the terminal and do a RESET (power cycle), the bits of the Profibus will now work properly.
Sample Program (.prg):
FBPIC0,2,0,1 ;sets the PAD to report Actual Speed & Position
FBPOC3,0,0,1 ;sets the PED to accept Acceleration & Postion
DEL PROG1 ; deletes a program called PROG1
DEF PROG1 ; defines a program called PROG1
LH0 ; disable both limits
MC0 ; set to preset mode (mode continuous off)
MA0 ; set to incremental mode (mode absolute off)
END; end of the program PROG1
DEL PROG2 ; deletes a program called PROG2
DEF PROG2 ; defines a program called PROG2
L0 ; setup an infinite loop
D25000 ; set distance to 25000 units
V(VARI1) ; set the velocity to equal the value of VARI1
GO1 ; make motion
WAIT(AS.1=b0) ; wait for motion to complete
WAIT(IN.5=b1) ; wait for input 5 to go active
LN; end of the infinite loop
END; end of the program PROG2
STARTP PROG1; assign PROG1 to the Startup Program