FB10 for FHPP festo

Ironman02

Member
Join Date
Sep 2018
Location
Tlaxcala
Posts
8
Hi gays,
i hope that you are well,

Somebody help me to undertand what is the meaning about the f10 because i can not to move anymore the servocylinder, I have all the conditions for the drive to be enabled as indicated by the manual but I can not enable it so I wanted to see why it does not allow me or what conditions prevent me from enabling it but when I opened the fb then there I was complicated because I do not understand very well the indirect address,




SET
SAVE
= L 2.1
CLR
= #StrokeLimitReached
= #VelocityLimitReached
= #StateContinuousMode
= #StateControlModeB2
= #StateControlModeB1
L 0
T #ActualRecordNo
= #RC1
= #RCC
= #VelocityLimitReached
= #StrokeLimitReached
T #ActualVelocity
T #ActualForce
T #ActualRotRamp
L L#0
T #ActualPosition
T #ActualRotSpeed
L #I_ADDRESS
T LW 4
L DW#16#10020008
T LD 6
L DINO
T LW 10
TAR2
+ L#432
T LD 12
TAR2 LD 16
UC "DPRD_DAT"
P#L 4.0
P#L 0.0
P#L 6.0
LAR2 LD 16
L #SFC14_15_RET_VAL
A BR
NOT
JCN A7d0
JU A001
A7d0: L #INPUT_DATA.BYTE1
T #_Byte
CLR
A DIX [AR2,P#70.7]
= #StateOperationModeB2
A DIX [AR2,P#70.6]
= #StateOperationModeB1
A DIX [AR2,P#70.5]
= #ControlFCT_HMI
A DIX [AR2,P#70.4]
= #SupplyVoltPresent
A DIX [AR2,P#70.3]
= #Fault
A DIX [AR2,P#70.2]
= #Warning
A DIX [AR2,P#70.1]
= #Ready
A DIX [AR2,P#70.0]
= #DriveEnabled
L #INPUT_DATA.BYTE2
T #_Byte
A DIX [AR2,P#70.7]
= #DriveReferenced
A DIX [AR2,P#70.6]
= #StandStillControl
A DIX [AR2,P#70.5]
= #DragError
A DIX [AR2,P#70.4]
= #DriveMoving
A DIX [AR2,P#70.3]
= #AckTeach
A DIX [AR2,P#70.2]
= #MC
A DIX [AR2,P#70.1]
= #AckStart
A DIX [AR2,P#70.0]
= #HaltNotActive
A #StateOperationModeB1
JCN A7d1
L #INPUT_DATA.BYTE3
T #_Byte
A DIX [AR2,P#70.5]
= #StrokeLimitReached
A DIX [AR2,P#70.4]
= #VelocityLimitReached
A DIX [AR2,P#70.3]
= #StateContinuousMode
A DIX [AR2,P#70.2]
= #StateControlModeB2
A DIX [AR2,P#70.1]
= #StateControlModeB1
JU A7d2
A7d1: L #INPUT_DATA.BYTE3
AD DW#16#FF
T #ActualRecordNo
A7d2: L W#16#0
T #_Word
CLR
A #StateOperationModeB1
= DIX [AR2,P#73.0]
A #StateOperationModeB2
= DIX [AR2,P#73.1]
A #StateControlModeB1
= DIX [AR2,P#73.2]
A #StateControlModeB2
= DIX [AR2,P#73.3]
A #StateContinuousMode
= DIX [AR2,P#73.4]
L #_Word
T #StateOPM
L #StateOPM
L 0
TAK
==I
T LW 4
JC A7d4
JU A7d5
A7d4: L #INPUT_DATA.BYTE4
T #_Byte
CLR
A DIX [AR2,P#70.0]
= #RC1
A DIX [AR2,P#70.1]
= #RCC
A DIX [AR2,P#70.4]
= #VelocityLimitReached
A DIX [AR2,P#70.5]
= #StrokeLimitReached
L #INPUT_DATA.BYTE5_8
T #ActualPosition
JU A7d3
A7d5: L 1
L LW 4
==I
JC A7d6
L 13
TAK
==I
JC A7d6
L 17
TAK
==I
JC A7d6
JU A7d7
A7d6: L #INPUT_DATA.BYTE4
AD DW#16#FF
T #ActualVelocity
L #INPUT_DATA.BYTE5_8
T #ActualPosition
JU A7d3
A7d7: L 5
L LW 4
==I
JC A7d8
JU A7d9
A7d8: L #INPUT_DATA.BYTE4
AD DW#16#FF
L 128
>=I
JCN A7da
L #INPUT_DATA.BYTE4
L B#16#FF
XOW
AD DW#16#FF
T #ActualForce
L #ActualForce
L 1
+I
L -1
*I
T #ActualForce
JU A7db
A7da: L #INPUT_DATA.BYTE4
AD DW#16#FF
T #ActualForce
A7db: L #INPUT_DATA.BYTE5_8
T #ActualPosition
JU A7d3
A7d9: L 9
L LW 4
==I
JC A7dc
JU A7d3
A7dc: L #INPUT_DATA.BYTE4
AD DW#16#FF
T #ActualRotRamp
L #INPUT_DATA.BYTE5_8
T #ActualRotSpeed
A7d3: L #OPM
T #_Word
CLR
A DIX [AR2,P#73.0]
= #OperationModeB1
A DIX [AR2,P#73.1]
= #OperationModeB2
A DIX [AR2,P#73.2]
= #ControlModeB1
A DIX [AR2,P#73.3]
= #ControlModeB2
A DIX [AR2,P#73.4]
= #ContinuousMode
L B#16#0
T #_Byte
A #OperationModeB2
= DIX [AR2,P#70.7]
A #OperationModeB1
= DIX [AR2,P#70.6]
A #HMIAccessLocked
= DIX [AR2,P#70.5]
CLR
= DIX [AR2,P#70.4]
A #ResetFault
= DIX [AR2,P#70.3]
A #Brake
= DIX [AR2,P#70.2]
A #Stop
= DIX [AR2,P#70.1]
A #EnableDrive
= DIX [AR2,P#70.0]
L #_Byte
T #OUTPUT_DATA.BYTE1
TAK
T #_Byte
CLR
= DIX [AR2,P#70.7]
A #ClearRemPos
= DIX [AR2,P#70.6]
A #TeachActValue
= DIX [AR2,P#70.5]
A #JogNeg
= DIX [AR2,P#70.4]
A #JogPos
= DIX [AR2,P#70.3]
A #StartHoming
= DIX [AR2,P#70.2]
A #StartTask
= DIX [AR2,P#70.1]
A #Halt
= DIX [AR2,P#70.0]
L #_Byte
T #OUTPUT_DATA.BYTE2
A #OperationModeB1
JCN A7de
CLR
= DIX [AR2,P#70.7]
= DIX [AR2,P#70.6]
A #DeactivateStrokeLimit
= DIX [AR2,P#70.5]
CLR
= DIX [AR2,P#70.4]
A #ContinuousMode
= DIX [AR2,P#70.3]
A #ControlModeB2
= DIX [AR2,P#70.2]
A #ControlModeB1
= DIX [AR2,P#70.1]
A #AbsRel
= DIX [AR2,P#70.0]
L #_Byte
T #OUTPUT_DATA.BYTE3
JU A7df
A7de: L #RecordNo
AW W#16#FF
T #OUTPUT_DATA.BYTE3
A7df: L #OPM
L 0
TAK
==I
T LW 4
JC A7e1
JU A7e2
A7e1: L B#16#0
T #OUTPUT_DATA.BYTE4
L L#0
T #OUTPUT_DATA.BYTE5_8
JU A7e0
A7e2: L 1
L LW 4
==I
JC A7e3
L 13
TAK
==I
JC A7e3
L 17
TAK
==I
JC A7e3
JU A7e4
A7e3: L #SetValueVelocity
AW W#16#FF
T #OUTPUT_DATA.BYTE4
L #SetValuePosition
T #OUTPUT_DATA.BYTE5_8
JU A7e0
A7e4: L 5
L LW 4
==I
JC A7e5
JU A7e6
A7e5: L B#16#0
T #OUTPUT_DATA.BYTE4
L #SetValueForce
L 100
>I
JCN A7e7
L L#100
T #OUTPUT_DATA.BYTE5_8
JU A7e0
A7e7: L #SetValueForce
L -100
<I
JCN A7e9
L L#-100
T #OUTPUT_DATA.BYTE5_8
JU A7e0
A7e9: L #SetValueForce
ITD
T #OUTPUT_DATA.BYTE5_8
JU A7e0
A7e6: L 9
L LW 4
==I
JC A7ea
JU A7e0
A7ea: L #SetValueRotRamp
AW W#16#FF
T #OUTPUT_DATA.BYTE4
L #SetValueRotSpeed
T #OUTPUT_DATA.BYTE5_8
A7e0: L #O_ADDRESS
T LW 4
L DW#16#10020008
T LD 6
L DINO
T LW 10
TAR2
+ L#496
T LD 12
TAR2 LD 16
UC "DPWR_DAT"
P#L 4.0
P#L 6.0
P#L 0.0
LAR2 LD 16
L #SFC14_15_RET_VAL
A BR
NOT
JCN A7ec
JU A001
A7ec: SET
= L 2.1
L 0
T #RET_VALUE
SAVE
BEU
A001: CLR
= L 2.1
L #SFC14_15_RET_VAL
T #RET_VALUE
SAVE
 
This looks like an Step 7 Siemens block probably a standard one of theirs, if it is then do not modify it. If it is Step 7 then I suggest this block is not the problem.
 
CALL "CMMP_AS_CTRL" , "FB10_AUX_DB"
I_ADDRESS :=W#16#100
O_ADDRESS :=W#16#100
EnableDrive :="VERT_CYLINDER_DATA".EnableDrive
Stop :="VERT_CYLINDER_DATA".Stop
Brake :="VERT_CYLINDER_DATA".Brake
ResetFault :="VERT_CYLINDER_DATA".ResetFault
HMIAccessLocked :="VERT_CYLINDER_DATA".HMIAccesslocked
OPM :="VERT_CYLINDER_DATA".OPM
Halt :="VERT_CYLINDER_DATA".Halt
StartTask :="VERT_CYLINDER_DATA".StartTask
StartHoming :="VERT_CYLINDER_DATA".StartHoming
JogPos :="VERT_CYLINDER_DATA".JogPos
JogNeg :="VERT_CYLINDER_DATA".JogNeg
TeachActValue :="VERT_CYLINDER_DATA".TeachActualValue
ClearRemPos :="VERT_CYLINDER_DATA".ClearRemPos
AbsRel :="VERT_CYLINDER_DATA".AbsoluteRelative
RecordNo :="VERT_CYLINDER_DATA".RecordNo
SetValueVelocity :="VERT_CYLINDER_DATA".SetValueVelocity
SetValuePosition :="VERT_CYLINDER_DATA".SetValuePosition
SetValueForceRamp:="VERT_CYLINDER_DATA".SetValueForceRamp
SetValueForce :="VERT_CYLINDER_DATA".SetValueForce
SetValueRotRamp :="VERT_CYLINDER_DATA".SetValueRotRamp
SetValueRotSpeed :="VERT_CYLINDER_DATA".SetValueRotSpeed
DriveEnabled :="VERT_CYLINDER_DATA".DriveEnabled
Ready :="VERT_CYLINDER_DATA".Ready
Warning :="VERT_CYLINDER_DATA".Warning
Fault :="VERT_CYLINDER_DATA".Fault
SupplyVoltPresent:="VERT_CYLINDER_DATA".SupplyVoltageOk
ControlFCT_HMI :="VERT_CYLINDER_DATA".ControlFCT_HMI
StateOPM :="VERT_CYLINDER_DATA".StateOPM
HaltNotActive :="VERT_CYLINDER_DATA".HaltNotActive
AckStart :="VERT_CYLINDER_DATA".AckStart
MC :="VERT_CYLINDER_DATA".MC
AckTeach :="VERT_CYLINDER_DATA".AckTeach
DriveMoving :="VERT_CYLINDER_DATA".DriveMoving
DragError :="VERT_CYLINDER_DATA".DragError
StandStillControl:="VERT_CYLINDER_DATA".StandstillControl
DriveReferenced :="VERT_CYLINDER_DATA".DriveReferenced
ActualRecordNo :="VERT_CYLINDER_DATA".ActualRecordNo
RC1 :="VERT_CYLINDER_DATA".RC1
RCC :="VERT_CYLINDER_DATA".RCC
ActualPosition :="VERT_CYLINDER_DATA".ActualPosition
ActualVelocity :="VERT_CYLINDER_DATA".ActualVelocity
ActualForce :="VERT_CYLINDER_DATA".ActualForce
ActualRotRamp :="VERT_CYLINDER_DATA".ActualRotRamp
ActualRotSpeed :="VERT_CYLINDER_DATA".ActualRotSpeed
RET_VALUE :="VERT_CYLINDER_DATA".RET_VALUE

Hi, This is the original FB but i don't want modify it, i want to understand for give the comand in mode jog because is in extra stroke and i can't move anymore, anybody help me
 
DriveMoving :="VERT_CYLINDER_DATA".DriveMoving

I need this output but i dont understand how to enable in the fb 10, sombody help me to understand the meaning of the indirect adress,

CLR
= DIX [AR2,P#70.7]
A #ClearRemPos
= DIX [AR2,P#70.6]
A #TeachActValue
= DIX [AR2,P#70.5]
A #JogNeg
= DIX [AR2,P#70.4]
A #JogPos
= DIX [AR2,P#70.3]
A #StartHoming
= DIX [AR2,P#70.2]
A #StartTask
= DIX [AR2,P#70.1]
A #Halt
= DIX [AR2,P#70.0]
L #_Byte
T #OUTPUT_DATA.BYTE
 

Similar Topics

Hi All, I am trying to communicate siemens PLC with FESTO Servo & 3 Festo make Steppers on FHPP Modbus Protocol. Sometimes, I face Modbus...
Replies
0
Views
1,324
Glad the site is working again... I have a customer having issues with a Festo and I have never worked with them, see below
Replies
9
Views
1,306
Working with a Siemens PLC, I have to replace a bad Festo valve bank Profinet adapter with part number: CTEU-PN I am very comfortable with...
Replies
1
Views
1,164
Hello Experts, Does anyone have this gsdml v2.31 festo cteu 20150503?? I've gone to the Festo website and the version that they have for cteu is...
Replies
0
Views
778
Hello everyone, It's the first experience with a Festo's drives and the Festo Configuration Tool programming tool. Particularly with these...
Replies
2
Views
1,497
Back
Top Bottom