目录
页
=E+COVER/1=E+INVT/1=E+MEC/50=E+MEC/56=E+MEC/60=E+MEC/65=E+MEC/402=E+MEC/405=E+TER/430=E+PTL/2
封页/COVER
目录 : =E+COVER/1 - =E+PTL/2伺服回路
激光位移传感器回路PLC LAYOUTNET VIEW电柜安装板布局电柜标牌
端子图表 =E+MEC-X1部件列表 : -页描述
增补页字段
栏 X:一自动生成的页被手工修改
日期2016/5/192017/4/242017/4/242017/4/242017/4/242017/4/242017/4/242016/12/52017/4/242017/4/24
编辑者WUTAIFANG
WWWWWWWWW
F06_001XX
+COVER/1
日期2017/4/24校对.W审核原始项目
+MEC/50
目录 : =E+COVER/1 - =E+PTL/2
A-1/2
替换
替换人
PT-2017-04
=E+INVT
页数页数
19
修改日期姓名
0123456789AC220V 50HZ从对方电柜引出5050RD1.5LB 浅蓝色1.550U1-24+/56134-50QF14A250U1-0V/56FROM PLC50SV1-P150SV1-P2/5650SV1-L150SV1-L3BLUE1.5跳线跳线-50SV1SH1L1L2200VL3PE1STO1STO+STO2+24V24V SUPPLYMX4MINI-USB.81X150 P1PROFINET.81X150 P2PROFINET.X1X8DI11DI22DI33DI44DI_COM6DI_COM7RESERVED5RESERVED8RESERVED9RESERVED10RESERVEDRESERVEDRESERVEDMOTORSH2UVWRESISTORDCP跳线R2R1PE2X1X9.X1X8111213141718151619RESERVEDENCODERX5microSD-CARD6SL3210-5FB10-2UF0.DO1+DO1-DO2+DO2-BK+BK-20U1V1W1PE50M11FL6032-2AF21-1AA1M3编码器+INVT/1日期2017/5/4校对.W审核原始项目56伺服回路A-1/2替换替换人PT-2017-04=E+MEC页数页数509修改日期姓名0123456789KEYENCE直流电源 网关(Profinet-Devicenet)-56U150/50SV1-P250U1-24+激光位置控制器-56L1V+CAN HSHIELDCAN LV--56DCP/56DCP-L/220VRD1.5L480WPROFINET:X35432150L1-V+50L1-CAN H50L1-SHIELD50L1-CAN L50L1-V-AC220V从对方电柜引出24+0/56DCP-NLB50U1-0V24+24--PEBLUE1.550U1-24+/5050U1-0V/50激光检测头激光检测头50日期2017/5/4校对.W审核原始项目60激光位移传感器回路A-1/2替换替换人PT-2017-04=E+MEC页数页数569修改日期姓名0123456789/50U1-24+/50U1-0VBLUE1.5伺服1伺服1伺服1原位限位+限位-激光系统位移1急停结果/131314141314-X1RESERVE113144213145313146:14RESERVE:14RESERVE:14RESERVERESERVERESERVERESERVERESERVERESERVE:14RESERVE:14RESERVERESERVERESERVERESERVERESERVE2MAI 0-PE-60PLC1SIE.6ES7214-1AG31-0XB0I0.1I0.2I0.3I0.5I0.6I0.7I1.1L+MFEL+M1MDI a.0DI a.1DI a.2DI a.3DI a.4DI a.5DI a.6DI a.7DI b.0DI b.1I1.2-X1DI b.2DI b.3DI b.4DI b.5-X10123456IX.07IX.18IX.29IX.310IX.411IX.512IX.613IX.714IX+1.015IX+1.116IX+1.217IX+1.318IX+1.419IX+1.520-X111IWX2IWX+2+--++-CPU 1214C DC/DC/DCS7-1200-6ES7214-1AG31-0XB0SIEMENS-+QX+1.0-X1213L+23M3DQ a.04DQ a.15DQ a.26DQ a.37DQ a.48DQ a.59DQ a.610DQ a.711DQ b.0QX+1.1QX.0QX.1QX.2QX.3QX.4QX.5QX.6QX.712DQ b.1RESERVERESERVERESERVERESERVERESERVERESERVERESERVERESERVERESERVE56日期2017/5/4校对.W审核原始项目RESERVE+RESERVEAI 1365PLC LAYOUTA-1/2替换替换人PT-2017-04=E+MEC页数页数609修改日期姓名012345678965U1工业交换机PN1S7-1200PLCPN2S7-1500PLC网关(DEVICENET-PROFINET)PN3PN4伺服60日期2017/4/24校对.W审核原始项目402NET VIEWA-1/2替换替换人PT-2017-04=E+MEC页数页数659修改日期姓名0123456789-M130 mm30 mm40x100 -50QF1SCH.IC65N-4AIC65N-C4A/2P340x100 517 mm221 mm65日期2017/5/4校对.W审核原始项目-50SV1230 mm+TER/430电柜安装板布局A-1/2替换替换人PT-2017-04=E+MEC页数页数4029修改日期姓名0123456789端子图表排电缆名称电缆型号连接点电缆名称F13_001=E+MEC-X1电缆型号短连接连接点端子功能文本目标代号131313-60PLC1-60PLC1-60PLC1-X10:8-X10:9-X10:10131313-60PLC1-60PLC1-60PLC1-X10:12-X10:13-X10:1413-60PLC1-X10:161234567891011121314-60PLC1目标代号-X10:1/60.3/60.3/60.3141414/60.3/60.3/60.3/60.4/60.4/60.4141414/60.4/60.4/60.4/60.514/60.5页/列+MEC/402日期2017/4/24校对.W审核原始项目+PTL/2端子图表 =E+MEC-X1A-1/2替换替换人PT-2017-04=E+TER页数页数4309修改日期姓名0123456789
部件列表
设备标识符
+MEC-56L1+MEC-M1+MEC-50M1+MEC-60PLC1+MEC-50QF1+MEC-50SV1+MEC-56U1+MEC-65U1
F01_001
数量
00011100
名称类型号供应商部件编号
2极空开 4A
6ES7214-1AG31-0XB0IC65N-C4A/2P
6SL3210-5FB10-2UF0
SIE
SCHNEIDER
SIE.6ES7214-1AG31-0XB0SCH.IC65N-4A
SIE.6SL3210-5FB10-2UF0_2
+TER/430
日期2017/4/24校对.W审核原始项目
部件列表 : -
A-1/2
替换
替换人
PT-2017-04
=E+PTL
页数页数
29
修改日期姓名
Totally IntegratedAutomation Portal程序块Main [OB1]Main 属性常规名称编号信息标题Main自动\"Main Program Sweep (Cy‐cle)\"0.1编号1类型OB语言LAD作者用户自定义 ID数据类型BoolBoolBool注释系列版本名称Input默认值注释Initial call of this OB=True, if remanent data are availableInitial_CallRemanenceTemptenpConstant网络 1:%M0.0\"常 OFF\"%M0.0\"常 OFF\"%M0.0\"常 OFF\"网络 2:%M0.1\"常 ON\"%M0.1\"常 ON\"%M0.1\"常 ON\"网络 3:%FC1\"FC1_SVER\"ENENOTotally IntegratedAutomation Portal程序块FC1_SVER [FC1]FC1_SVER 属性常规名称编号信息标题版本FC1_SVER自动编号1类型FC语言LAD0.1作者用户自定义 ID数据类型默认值注释系列名称InputOutputInOutTempMode posSWSW-产品类型BSW-产品类型APOSITIONConstantReturnFC1_SVER注释IntBoolBoolBoolDIntVoid网络 1:寻找参考点%M100.0\"伺服JOG运行模式\"%M20.1\"伺服轴1寻参OK\"EN2INMOVEENOOUT1#\"Mode pos\"网络 2:JOG 模 式%M100.0\"伺服JOG运行模式\"EN7INMOVEENOOUT1#\"Mode pos\"网络 3:%M20.1\"伺服轴1寻参OK\"%M100.0\"伺服JOG运行模式\"EN4INMOVEENOOUT1#\"Mode pos\"网络 4:%I300.1\"上位允许检测\"#\"Mode pos\">Int0%DB1\"IEC_Timer_0_DB\"%M10.0\"伺服允许\"%M20.1\"伺服轴1寻参OK\"%M100.0\"伺服JOG运行模式\"T#1STONTimeINPTQET...%M79.0\"检测OK旋转伺服停止\"网络 5:伺服启动Totally IntegratedAutomation Portal%M10.0\"伺服允许\"\"IEC_Timer_0_DB\".Q%M10.1\"伺服启动\"%M20.1\"伺服轴1寻参OK\"网络 6:给定伺服位置1 位%M10.1\"伺服启动\"%M77.1\"工件类型2\"%M77.0\"工件类型1\"EN1000INMOVEENOOUT1#POSITION网络 7:给定伺服位置2 位置值%M10.1\"伺服启动\"%M77.0\"工件类型1\"%M77.1\"工件类型2\"EN2000INMOVEENOOUT1#POSITION网络 8:%M79.0\"检测OK旋转伺服停止\"EN0INMOVEENOOUT1#POSITION网络 9: 伺服off1 off2 off3 参考FB284说明书参数针脚分配ConfigEPOS%M0.1\"常 ON\"%M53.0\"Tag_14\"%M53.1\"Tag_15\"%M53.2\"Tag_8\"网络 10: 伺服原位信号 参考FB284说明书参数针脚分配ConfigEPOS%I0.1\"伺服原位开关\"%M53.6\"Tag_16\"网络 11:伺服限位 参考FB284说明书参数针脚分配ConfigEPOS%I0.2\"伺服限位+\"%M51.6\"伺服限位\"%I0.3\"伺服限位-\"网络 12:ConfigEPOS MD50 =MB50 MB51 MB52 MB53Totally IntegratedAutomation Portal%DB284\"SINA_POS_DB\"%FB284\"SINA_POS\"EN#\"Mode pos\"%M203.0\"伺服准备好\"EnableAxisCancelTraversingIntermediateStopPositiveAxisPosOkNegative%M40.1\"伺服JOG+\"%M40.2\"伺服JOG-\"0%I300.6\"伺服故障复位\"%M10.1\"伺服启动\"#POSITION1000100100100%MD50\"Tag_13\"280280Jog1Jog2FlyRefAckErrorExecuteModePositionVelocityOverVOverAccOverDecConfigEPosHWIDSTWHWIDZSWAxisRefActVelocityActPositionActModeLockoutEPosZSW1EPosZSW2ActWarnActFaultModePosENOErrorStatusDiagIDAxisEnabledAxisErrorAxisWarn............%M78.0\"伺服故障\"...%M20.0\"伺服位置到达\"%M20.1\"伺服轴1寻参OK\"%MD64\"Tag_6\"%MD60\"Tag_3\"..................110%M20.1\"伺服轴1寻参OK\"Totally IntegratedAutomation Portal程序块SINA_POS [FB284]SINA_POS 属性常规名称编号信息标题版本SINA_POS自动编号284类型FB语言SCL4.6作者用户自定义 ID数据类型默认值DRVDPS7SINA_POS注释系列从在 HMI 工设定值HMI/程组态中OPC可见UA可写TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse监控DRIVES名称保持可从HMI/OPCUA 访问注释InputModePosEnableAxisCancelTraversingIntermediateStopPositiveNegativeJog1Jog2FlyRefAckErrorExecuteModePositionVelocityOverVOverAccOverDecConfigEPosHWIDSTWHWIDZSWOutputErrorStatusDiagIDAxisEnabledAxisErrorAxisWarnAxisPosOkAxisRefActVelocityActPositionActModeLockoutEPosZSW1EPosZSW2ActWarnActFaultInOutStaticsbOff1EdgesbOff1sbExecuteEdgesbExecutesbRefTypEdgesbRefTypsbMdiStartsbMdiStartEdgesbRefStartsbJogIncsbReadysbIOpsbAccelsbDecelsbAlarmsbFaultsbFWDsbBWDsbBusyswStatusswEPosZSW1swEPosZSW2siExecuteCycsiRefTypCycIntBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolDIntDIntIntIntIntDWordHW_IOHW_IOBoolWordWordBoolBoolBoolBoolBoolDIntDIntIntBoolWordWordWordWord001100000000010010010016#0000_0003000000000000000000非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordWordWordIntInt000000000000000000016#000016#000016#000000非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTotally IntegratedAutomation Portal名称数据类型默认值保持可从HMI/OPCUA 访问从HMI/OPCUA可写TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrue在 HMI 工设定值程组态中可见监控注释siJogIncCycsiMdiStartCycsiRefActRetrysiModePossiModePosMaxsiCycWaitsiRetryMaxsbModePossxSendBufSTW1EPosSTW1EPosSTW2STW2OverrideVPositionVelocityOverrideAOverrideDReservesxRecvBufZSW1EPosZSW1EPosZSW2ZSW2NotUsedPositionVelocityErrNrWarnNrReserveTemppiRetSFCpiCountswSendBufswSendBuf[0]swSendBuf[1]swSendBuf[2]swSendBuf[3]swSendBuf[4]swSendBuf[5]swSendBuf[6]swSendBuf[7]swSendBuf[8]swSendBuf[9]swSendBuf[10]swSendBuf[11]swRecvBufswRecvBuf[0]swRecvBuf[1]swRecvBuf[2]swRecvBuf[3]swRecvBuf[4]swRecvBuf[5]swRecvBuf[6]swRecvBuf[7]swRecvBuf[8]swRecvBuf[9]swRecvBuf[10]swRecvBuf[11]ConstantIntIntIntIntIntIntIntBoolStructWordWordWordWordWordDWordDWordWordWordWordStructWordWordWordWordWordDWordDWordWordWordWordIntIntArray[0..11] ofWordWordWordWordWordWordWordWordWordWordWordWordWordArray[0..11] ofWordWordWordWordWordWordWordWordWordWordWordWordWord0000145150WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000DWORD#16#0000_0000DWORD#16#0000_0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000DWORD#16#0000_0000DWORD#16#0000_0000WORD#16#0000WORD#16#0000WORD#16#0000非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持非保持TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse0001 // zyklische Kommunikation (PZD-Daten)0002 // zyklische Kommunikation zwischen dem SINAMICS S120 und der Steuerung. Wird in der HW-Config Std.TLG 111 projek-tiert,0003 // so werden in jedem Bus-Zyklus 12 PZD-Wörter hin und wieder zurück übertragen. 0004 // Die Parametrierung dieser Wörter sind der SINAMICS-Dokumentation zu entnehmen. Entsprechend müssen dann in dem zugeordneten DB die Bits 0005 // und Bytes versorgt werden. Es besteht aber auch die Möglichkeit die Rahmentypen frei zu0006 // projektieren0007 0008 // Betriebsart ermitteln0009 IF #ModePos > #siModePosMax THEN0010 0011 #sbModePos := FALSE;0012 #Error := True;Totally IntegratedAutomation Portal0013001400150016001700180019002000210022002300240025002600270028002900300031003200330034003500360037003800390040004100420043004400450046004700480049005000510052005300540055005600570058005900600061006200630064006500660067006800690070007100720073007400750076007700780079008000810082008300840085008600870088008900900091009200930094009500960097009800990100 #swStatus := 16#8202; ELSIF #ModePos < 1 THEN #sbModePos := FALSE; #Error := True; #swStatus := 16#8202; ELSE // Betriebsartenwechsel ist nur möglich, wenn die Achse nicht beschleunigt oder nicht verzögert // und die Geschwindigkeit Null ist IF NOT #sbFWD AND NOT #sbBWD AND NOT #sbAccel AND NOT #sbDecel THEN #sbModePos := TRUE; #siModePos := #ModePos; // Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde IF #swStatus = 16#8202 THEN #swStatus := 16#7002; #Error := False; END_IF; END_IF; END_IF; // Überprüfung der analogen Eingabewerte, ob sie innerhalb des möglichen Bereiches liegen // Geschwindigkeitsoverride (0% - 199%, 100% => W#16#4000) IF (#OverV < 0) OR (#OverV > 199) THEN #swStatus := 16#8203; #Error := True; ELSE // Geschwindigkeitsoverride in den Sendepuffer eintragen #sxSendBuf.OverrideV := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverV) / 100.0))); END_IF; // Beschleunigungsoverride (0% - 100%, 100% => W#16#4000) IF (#OverAcc < 0) OR (#OverAcc > 100) THEN #swStatus := 16#8203; #Error := True; ELSE // Beschleunigungsoverride in den Sendepuffer eintragen #sxSendBuf.OverrideA := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverAcc) / 100.0))); END_IF; // Verzögerungsoverride (0% - 100%, 100% => W#16#4000) IF (#OverDec < 0) OR (#OverDec > 100) THEN #swStatus := 16#8203; #Error := True; ELSE // Verzögerungsoverride in den Sendepuffer eintragen #sxSendBuf.OverrideD := INT_TO_WORD(REAL_TO_INT(16384.0 * (INT_TO_REAL(#OverDec) / 100.0))); END_IF; // Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde IF NOT (#OverV < 0) AND NOT (#OverV > 199) AND NOT (#OverAcc < 0) AND NOT (#OverAcc > 100) AND NOT (#OverDec < 0) AND NOT (#OverDec > 100) THEN IF #swStatus = 16#8203 THEN #swStatus := 16#7002; #Error := False; END_IF; END_IF; // Positionssollwert // Positionssollwert in den Sendepuffer eintragen #sxSendBuf.Position := DINT_TO_DWORD(#Position); // Geschwindigkeitssollwert (Begrenzung / Überwachung // Geschwindigkeitssollwert in den Sendepuffer eintragen #sxSendBuf.Velocity := DINT_TO_DWORD(#Velocity); // Einschalten bzw. Ausschalten des Antriebes erkennen IF #EnableAxis AND NOT #sbOff1Edge AND NOT #sbBusy AND #sbModePos THEN #sbOff1 := True; END_IF; // Einschalten bzw. Ausschalten des Antriebes Flanke merken #sbOff1Edge := #EnableAxis AND NOT #sbBusy; // Einschaltflankenmerker wieder zurücksetzen IF NOT #EnableAxis THEN #sbOff1 := False; END_IF; // Fliegendes Referenzieren aktivieren erkennen IF #FlyRef AND NOT #sbRefTypEdge THEN #sbRefTyp := True; END_IF; // Fliegendes Referenzieren aktivieren Flanke merken #sbRefTypEdge := #FlyRef; // Fliegendes Referenzieren Flankenmerker wieder zurücksetzen IF NOT #FlyRef THENTotally IntegratedAutomation Portal0101010201030104010501060107010801090110011101120113011401150116011701180119012001210122012301240125012601270128012901300131013201330134013501360137013801390140014101420143014401450146014701480149015001510152015301540155015601570158015901600161016201630164016501660167016801690170017101720173017401750176017701780179018001810182018301840185018601870188 #sbRefTyp := False; #siRefTypCyc := 0; END_IF; // Verfahrauftrag aktivieren erkennen IF #ExecuteMode AND NOT #sbExecuteEdge THEN #sbExecute := True; END_IF; // Verfahrauftrag aktivieren Flanke merken #sbExecuteEdge := #ExecuteMode; // Verfahrauftragflankenmerker wieder zurücksetzen IF NOT #ExecuteMode THEN #sbExecute := False; #siExecuteCyc := 0; END_IF; // Betriebsart MDI / Sollwertdirektvorgabe Flanke merken (*IF #sxSendBuf.sxEPosSTW1.MdiStart AND NOT #sbMdiStartEdge THEN #sbMdiStart := True; END_IF; // Betriebsart MDI / Sollwertdirektvorgabe Flanke merken #sbMdiStartEdge := #sxSendBuf.sxEPosSTW1.MdiStart AND NOT #Busy;*) // Verfahrauftragflankenmerker wieder zurücksetzen (*IF NOT #sxSendBuf.sxEPosSTW1.MdiStart THEN #sbMdiStart := False; #siMdiStartCyc := 0; END_IF;*) IF #sxSendBuf.EPosSTW1.%X15 AND NOT #sbMdiStartEdge THEN #sbMdiStart := True; END_IF; // Betriebsart MDI / Sollwertdirektvorgabe Flanke merken #sbMdiStartEdge := #sxSendBuf.EPosSTW1.%X15 AND NOT #sbBusy; // Verfahrauftragflankenmerker wieder zurücksetzen IF NOT #sxSendBuf.EPosSTW1.%X15 THEN #sbMdiStart := False; #siMdiStartCyc := 0; END_IF; // Schreibdaten zusammenstellen // Steuerword STW1 für alle Betriebsart aufbereiten (*#sxSendBuf.sxSTW1.RejTrvTsk := #RejTrvTsk; #sxSendBuf.sxSTW1.IntMStop := #IntMStop; #sxSendBuf.sxSTW1.AckFault := #AckFlt;*) #sxSendBuf.STW1.%X4 := #CancelTraversing; #sxSendBuf.STW1.%X5 := #IntermediateStop; #sxSendBuf.STW1.%X7 := #AckError; #sxSendBuf.STW1.%X1 := TRUE; #sxSendBuf.STW1.%X2 := TRUE; #sxSendBuf.STW1.%X3 := TRUE; #sxSendBuf.STW1.%X10 := TRUE; // Hauptbetriebsart \"Positionieren / manueller Sollwertvorgabe (MDI)\" // Betriebsart \"Positionieren Relativ positiv\" oder \"Positionieren Relativ negativ\" IF (#siModePos = 1 AND #sbModePos) THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW1.MdiTyp := False; #sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.sxEPosSTW1.MdiSetup := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxEPosSTW1.MdiStart := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW1.%X8 := False; #sxSendBuf.EPosSTW1.%X9 := False; #sxSendBuf.EPosSTW1.%X10 := False; #sxSendBuf.EPosSTW1.%X14 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW2.%X8 := False;Totally IntegratedAutomation Portal018901900191019201930194019501960197019801990200020102020203020402050206020702080209021002110212021302140215021602170218021902200221022202230224022502260227022802290230023102320233023402350236023702380239024002410242024302440245024602470248024902500251025202530254025502560257025802590260026102620263026402650266026702680269027002710272027302740275 #sxSendBuf.EPosSTW1.%X15 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN // Betriebsart MDI / Sollwertdirektvorgabe setzen //#sxSendBuf.sxEPosSTW1.MdiStart := True; #sxSendBuf.EPosSTW1.%X15 := True; // Positioniertyp auf relatives Positionieren stellen //#sxSendBuf.sxEPosSTW1.MdiTyp := False; #sxSendBuf.EPosSTW1.%X8 := False; // die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen IF #Positive AND NOT #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := True; #sxSendBuf.EPosSTW1.%X9 := True; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; // die Richtungswahl für das Positionieren auf negative Richtung einstellen ELSIF NOT #Positive AND #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := True; #sxSendBuf.EPosSTW1.%X10 := True; // die Richtungswahl für das Positionieren auf keine Richtung einstellen ELSE // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; END_IF; // Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten, // ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN #siMdiStartCyc := #siMdiStartCyc + 1; ELSE // Flanke Sollwertübernahme MDI //#sxSendBuf.sxSTW1.TrvStart := #Execute; #sxSendBuf.STW1.%X6 := #ExecuteMode; END_IF; // \"Fliegendes Referentieren\" aktivieren // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich IF #sbRefTyp THEN // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen //#sxSendBuf.sxEPosSTW2.RefTyp := True; #sxSendBuf.EPosSTW2.%X8 := True; // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\ // ein Zyklus später kann das Referenzieren gestartet IF (#siRefTypCyc = 0) THEN #siRefTypCyc := #siRefTypCyc + 1; ELSE // Referenzieren starten //#sxSendBuf.sxSTW1.RefStart := True; #sxSendBuf.STW1.%X11 := True; END_IF; END_IF; END_IF; // Betriebsart \"Positionieren Absolut\" oder \"Positonieren Absolut positiv\" oder \"Positionieren Absolut negativ\" ELSIF #siModePos = 2 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1;Totally IntegratedAutomation Portal027602770278027902800281028202830284028502860287028802890290029102920293029402950296029702980299030003010302030303040305030603070308030903100311031203130314031503160317031803190320032103220323032403250326032703280329033003310332033303340335033603370338033903400341034203430344034503460347034803490350035103520353035403550356035703580359036003610362 #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW1.MdiTyp := False; #sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.sxEPosSTW1.MdiSetup := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxEPosSTW1.MdiStart := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW1.%X8 := False; #sxSendBuf.EPosSTW1.%X9 := False; #sxSendBuf.EPosSTW1.%X10 := False; #sxSendBuf.EPosSTW1.%X14 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.EPosSTW1.%X15 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN // Betriebsart MDI / Sollwertdirektvorgabe setzen //#sxSendBuf.sxEPosSTW1.MdiStart := True; #sxSendBuf.EPosSTW1.%X15 := True; // Positioniertyp auf absolutes Positionieren stellen //#sxSendBuf.sxEPosSTW1.MdiTyp := True; #sxSendBuf.EPosSTW1.%X8 := True; // die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen IF #Positive AND NOT #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := True; #sxSendBuf.EPosSTW1.%X9 := True; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; // die Richtungswahl für das Positionieren auf negative Richtung einstellen ELSIF NOT #Positive AND #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := True; #sxSendBuf.EPosSTW1.%X10 := True; // die Richtungswahl für das Positionieren auf keine Richtung einstellen ELSE // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; END_IF; // Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten, // ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN #siMdiStartCyc := #siMdiStartCyc + 1; ELSE // Flanke Sollwertübernahme MDI //#sxSendBuf.sxSTW1.TrvStart := #Execute; #sxSendBuf.STW1.%X6 := #ExecuteMode; END_IF; // \"Fliegendes Referentieren\" aktivierenTotally IntegratedAutomation Portal036303640365036603670368036903700371037203730374037503760377037803790380038103820383038403850386038703880389039003910392039303940395039603970398039904000401040204030404040504060407040804090410041104120413041404150416041704180419042004210422042304240425042604270428042904300431043204330434043504360437043804390440044104420443044404450446044704480449 // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich IF #sbRefTyp THEN // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen //#sxSendBuf.sxEPosSTW2.RefTyp := True; #sxSendBuf.EPosSTW2.%X8 := True; // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\ // ein Zyklus später kann das Referenzieren gestartet IF (#siRefTypCyc = 0) THEN #siRefTypCyc := #siRefTypCyc + 1; ELSE // Referenzieren starten //#sxSendBuf.sxSTW1.RefStart := True; #sxSendBuf.STW1.%X11 := True; END_IF; END_IF; END_IF; // Betriebsart \"Positionieren als Einrichten positiv\" oder \"Positionieren als Einrichten negativ\" ELSIF #siModePos = 3 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW1.MdiTyp := False; #sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.sxEPosSTW1.MdiSetup := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxEPosSTW1.MdiStart := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW1.%X8 := False; #sxSendBuf.EPosSTW1.%X9 := False; #sxSendBuf.EPosSTW1.%X10 := False; #sxSendBuf.EPosSTW1.%X14 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.EPosSTW1.%X15 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN // Betriebsart MDI / Sollwertdirektvorgabe setzen //#sxSendBuf.sxEPosSTW1.MdiStart := True; #sxSendBuf.EPosSTW1.%X15 := True; // Positioniertyp auf absolutes Positionieren stellen //#sxSendBuf.sxEPosSTW1.MdiTyp := True; #sxSendBuf.EPosSTW1.%X8 := True; // die Anwahl für MDI Modus auf Einrichten einstellen //#sxSendBuf.sxEPosSTW1.MdiSetup := True; #sxSendBuf.EPosSTW1.%X14 := True; // die Richtungswahl für das Positionieren auf positive Richtung oder negative Richtung einstellen IF #Positive AND NOT #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := True; #sxSendBuf.EPosSTW1.%X9 := True; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; // die Richtungswahl für das Positionieren auf negative Richtung einstellen ELSIF NOT #Positive AND #Negative THEN // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; Totally IntegratedAutomation Portal045004510452045304540455045604570458045904600461046204630464046504660467046804690470047104720473047404750476047704780479048004810482048304840485048604870488048904900491049204930494049504960497049804990500050105020503050405050506050705080509051005110512051305140515051605170518051905200521052205230524052505260527052805290530053105320533053405350536 // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := True; #sxSendBuf.EPosSTW1.%X10 := True; // die Richtungswahl für das Positionieren auf keine Richtung einstellen ELSE // positive Richtung //#sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.EPosSTW1.%X9 := False; // negative Richtung //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; END_IF; // Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten, // ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN #siMdiStartCyc := #siMdiStartCyc + 1; ELSE // Flanke Sollwertübernahme MDI //#sxSendBuf.sxSTW1.TrvStart := #Execute; #sxSendBuf.STW1.%X6 := #ExecuteMode; END_IF; // \"Fliegendes Referentieren\" aktivieren // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich IF #sbRefTyp THEN // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen //#sxSendBuf.sxEPosSTW2.RefTyp := True; #sxSendBuf.EPosSTW2.%X8 := True; // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\ // ein Zyklus später kann das Referenzieren gestartet IF (#siRefTypCyc = 0) THEN #siRefTypCyc := #siRefTypCyc + 1; ELSE // Referenzieren starten //#sxSendBuf.sxSTW1.RefStart := True; #sxSendBuf.STW1.%X11 := True; END_IF; END_IF; END_IF; // Hauptbetriebsart \"Referenzieren\" (Reference) // Betriebsart \"Referenzieren - Referenzpunktfahrt positiv\" oder \"Referenzieren - Referenzpunktfahrt negativ\" ELSIF #siModePos = 4 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW1.MdiStart := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW2.RefStDi := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW1.%X15 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW2.%X9 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN // Referenzieren starten //#sxSendBuf.sxSTW1.RefStart := #Execute; #sxSendBuf.STW1.%X11 := #ExecuteMode; // die Richtungswahl für das Referenzpunktfahrt positiv einstellen IF #Positive AND NOT #Negative THEN // positive ReferenzpunktfahrtTotally IntegratedAutomation Portal053705380539054005410542054305440545054605470548054905500551055205530554055505560557055805590560056105620563056405650566056705680569057005710572057305740575057605770578057905800581058205830584058505860587058805890590059105920593059405950596059705980599060006010602060306040605060606070608060906100611061206130614061506160617061806190620062106220623 //#sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.EPosSTW2.%X9 := False; // die Richtungswahl für das Referenzpunktfahrt negativ einstellen ELSIF NOT #Positive AND #Negative THEN // negative Referenzpunktfahrt //#sxSendBuf.sxEPosSTW2.RefStDi := True; #sxSendBuf.EPosSTW2.%X9 := True; END_IF; END_IF; // Betriebsart \"Referenzieren - Referenzpunkt setzen\" ELSIF #siModePos = 5 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW1.MdiStart := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW1.%X15 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.EPosSTW2.%X1 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF NOT #sbFault THEN // Referenzpunktfahrt negativ //#sxSendBuf.sxEPosSTW2.SetRefPt := #Execute; #sxSendBuf.EPosSTW2.%X1 := #ExecuteMode; END_IF; // Hauptbetriebsart \"Verfahrsätze\" (Traversing Blocks) ELSIF #siModePos = 6 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW1.MdiTyp := False; #sxSendBuf.sxEPosSTW1.MdiPos := False; #sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.sxEPosSTW1.MdiSetup := False; #sxSendBuf.sxEPosSTW2.SetRefPt := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxEPosSTW2.RefStDi := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW1.TrvBit0 := False; #sxSendBuf.sxEPosSTW1.TrvBit1 := False; #sxSendBuf.sxEPosSTW1.TrvBit2 := False; #sxSendBuf.sxEPosSTW1.TrvBit3 := False; #sxSendBuf.sxEPosSTW1.TrvBit4 := False; #sxSendBuf.sxEPosSTW1.TrvBit5 := False; #sxSendBuf.sxEPosSTW1.MdiStart := False;*) #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW1.%X8 := False; #sxSendBuf.EPosSTW1.%X9 := False; #sxSendBuf.EPosSTW1.%X10 := False; #sxSendBuf.EPosSTW1.%X14 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW1.%X0 := False; #sxSendBuf.EPosSTW1.%X1 := False;Totally IntegratedAutomation Portal062406250626062706280629063006310632063306340635063606370638063906400641064206430644064506460647064806490650065106520653065406550656065706580659066006610662066306640665066606670668066906700671067206730674067506760677067806790680068106820683068406850686068706880689069006910692069306940695069606970698069907000701070207030704070507060707070807090710 #sxSendBuf.EPosSTW1.%X2 := False; #sxSendBuf.EPosSTW1.%X3 := False; #sxSendBuf.EPosSTW1.%X4 := False; #sxSendBuf.EPosSTW1.%X5 := False; #sxSendBuf.EPosSTW1.%X15 := False; // Bei der Auswahl der Verfahrsätze entspricht die Position der Verfahrensatznummer // Verfahrsatznummer aus der Position ermitteln und in die einzelnen Bit's aufteilen // Es sind die Verfahrsatznummern 0 - 63 möglich IF (DINT_TO_INT(#Position) < 0) OR (DINT_TO_INT(#Position) > 63) THEN // Fehler, ungültiger Verfahrsatznummer #swStatus := 16#8204; #Error := True; ELSE // Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde IF #swStatus = 16#8204 THEN #swStatus := 16#7002; #Error := False; END_IF; // Verfahrsatznummer Bit 0 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#01) = W#16#01 THEN //#sxSendBuf.sxEPosSTW1.TrvBit0 := True; #sxSendBuf.EPosSTW1.%X0 := True; END_IF; // Verfahrsatznummer Bit 1 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#02) = W#16#02 THEN //#sxSendBuf.sxEPosSTW1.TrvBit1 := True; #sxSendBuf.EPosSTW1.%X1 := True; END_IF; // Verfahrsatznummer Bit 2 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#04) = W#16#04 THEN //#sxSendBuf.sxEPosSTW1.TrvBit2 := True; #sxSendBuf.EPosSTW1.%X2 := True; END_IF; // Verfahrsatznummer Bit 3 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#08) = W#16#08 THEN //#sxSendBuf.sxEPosSTW1.TrvBit3 := True; #sxSendBuf.EPosSTW1.%X3 := True; END_IF; // Verfahrsatznummer Bit 4 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#10) = W#16#10 THEN //#sxSendBuf.sxEPosSTW1.TrvBit4 := True; #sxSendBuf.EPosSTW1.%X4 := True; END_IF; // Verfahrsatznummer Bit 5 ermitteln IF (DINT_TO_WORD(#Position) AND W#16#20) = W#16#20 THEN //#sxSendBuf.sxEPosSTW1.TrvBit5 := True; #sxSendBuf.EPosSTW1.%X5 := True; END_IF; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, // dann die Betriebsart MDI / Sollwertvorgabe Start gesetzt werden IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN // Positioniertyp auf absolutes Positionieren stellen //#sxSendBuf.sxEPosSTW1.MdiTyp := True; #sxSendBuf.EPosSTW1.%X8 := True; // die Richtungswahl für das Positionieren auf positive Richtung einstellen //#sxSendBuf.sxEPosSTW1.MdiPos := True; #sxSendBuf.EPosSTW1.%X9 := True; // die Richtungswahl für das Positionieren auf negative Richtung abstellen //#sxSendBuf.sxEPosSTW1.MdiNeg := False; #sxSendBuf.EPosSTW1.%X10 := False; // die Anwahl für MDI Modus auf Einrichten einstellen //#sxSendBuf.sxEPosSTW1.MdiSetup := True; #sxSendBuf.EPosSTW1.%X14 := True; // Nach dem Einschalten des Antriebes und dem Betriebsart MDI / Sollwertvorgabe starten, // ein Paar Zyklen warten bevor die Flanke für die Sollwertübernahme MDI gesetzt werden kann IF #sbMdiStart AND (#siMdiStartCyc < #siCycWait) THEN #siMdiStartCyc := #siMdiStartCyc + 1; ELSE // Flanke Sollwertübernahme MDI //#sxSendBuf.sxSTW1.TrvStart := #Execute; #sxSendBuf.STW1.%X6 := #ExecuteMode; END_IF; // \"Fliegendes Referentieren\" aktivierenTotally IntegratedAutomation Portal07110712071307140715071607170718071907200721072207230724072507260727072807290730073107320733073407350736073707380739074007410742074307440745074607470748074907500751075207530754 // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich IF #sbRefTyp THEN // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen //#sxSendBuf.sxEPosSTW2.RefTyp := True; #sxSendBuf.EPosSTW2.%X8 := True; // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\ // ein Zyklus später kann das Referenzieren gestartet IF (#siRefTypCyc = 0) THEN #siRefTypCyc := #siRefTypCyc + 1; ELSE // Referenzieren starten //#sxSendBuf.sxSTW1.RefStart := True; #sxSendBuf.STW1.%X11 := True; END_IF; END_IF; END_IF; END_IF; // Hauptbetriebsart \"Tippen\" (Jogging) // Betriebsart \"Tippen positiv\" oder \"Tippen negativ\" angewählt ELSIF #siModePos = 7 AND #sbModePos THEN // Antrieb einschalten //#sxSendBuf.sxSTW1.Off1 := #sbOff1; #sxSendBuf.STW1.%X0 := #sbOff1; // nicht verwendete Signale für den 1. Schritt und eventuell weitere Schritte (*#sxSendBuf.sxEPosSTW1.MdiStart := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxEPosSTW2.RefTyp := False; #sxSendBuf.sxSTW1.RefStart := False;*) #sxSendBuf.EPosSTW1.%X15 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.STW1.%X11 := False; // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, 0755 // dann kann Tippen positiv oder negativ gesetzt werden0756 IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN07570758 // Tippen positiv0759 IF #Jog1 AND NOT #Jog2 THEN0760 //#sxSendBuf.sxSTW1.Jog1 := True;0761 #sxSendBuf.STW1.%X8 := True;0762 END_IF;07630764 // Tippen negativ0765 IF #Jog2 AND NOT #Jog1 THEN0766 //#sxSendBuf.sxSTW1.Jog2 := True;0767 #sxSendBuf.STW1.%X9 := True;0768 END_IF;07690770 // \"Fliegendes Referentieren\" aktivieren0771 // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich0772 IF #sbRefTyp THEN07730774 // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen0775 //#sxSendBuf.sxEPosSTW2.RefTyp := #FlyRef;0776 #sxSendBuf.EPosSTW2.%X8 := #FlyRef;07770778 // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\0779 // ein Zyklus später kann das Referenzieren gestartet0780 IF (#siRefTypCyc = 0) THEN0781 #siRefTypCyc := #siRefTypCyc + 1;0782 ELSE0783 // Referenzieren starten0784 //#sxSendBuf.sxSTW1.RefStart := True;0785 #sxSendBuf.STW1.%X11 := True;0786 END_IF;0787 END_IF;0788 END_IF;07890790 // Betriebsart \"Tippen positiv / Tippen negativ inkrementell\" 0791 ELSIF #siModePos = 8 AND #sbModePos THEN07920793 // Antrieb einschalten0794 //#sxSendBuf.sxSTW1.OFF1 := #sbOff1;0795 #sxSendBuf.STW1.%X0 := #sbOff1;07960797 // nicht verwendete Signale für den 1. Schritt und eventuell weitere SchritteTotally IntegratedAutomation Portal0798079908000801080208030804080508060807080808090810081108120813 (*#sxSendBuf.sxEPosSTW1.MdiStart := False; #sxSendBuf.sxEPosSTW2.JogInc := False; #sxSendBuf.sxSTW1.Jog1 := False; #sxSendBuf.sxSTW1.Jog2 := False; #sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.sxEPosSTW2.RefTyp := False;*) #sxSendBuf.EPosSTW1.%X15 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.STW1.%X8 := False; #sxSendBuf.STW1.%X9 := False; #sxSendBuf.STW1.%X11 := False; #sxSendBuf.EPosSTW2.%X8 := False; // Nach dem Einschalten des Antriebes, ein Paar Zyklen warten bevor Tippen negativ gesetzt werden kann // Nach dem Einschalten des Antriebes, prüfen ob der Antrieb betriebsbereit, in Operation ohne Fehler und Warnung ist, 0814 // dann kann Tippen positiv oder negativ gesetzt werden0815 IF #sbOff1 AND #sbReady AND #sbIOp AND NOT #sbFault THEN08160817 // Tippen inkrementell einstellen0818 //#sxSendBuf.sxEPosSTW2.JogInc := True;0819 #sxSendBuf.EPosSTW2.%X5 := True;08200821 #sbJogInc := True;08220823 // Nach dem Einstellen des Antriebes, ein Paar Zyklen warten bevor Tippen negativ oder Tippen positiv gesetz wer-den kann0824 IF #sbJogInc AND (#siJogIncCyc = 0) THEN0825 #siJogIncCyc := #siJogIncCyc + 1;0826 ELSE08270828 // Tippen positiv oder negativ inkrementell zulassen0829 IF #Jog1 XOR #Jog2 THEN08300831 //#sxSendBuf.sxSTW1.Jog1 := #Jog1;0832 //#sxSendBuf.sxSTW1.Jog2 := #Jog2;0833 #sxSendBuf.STW1.%X8 := #Jog1;0834 #sxSendBuf.STW1.%X9 := #Jog2;0835 END_IF;0836 END_IF;08370838 // \"Fliegendes Referentieren\" aktivieren0839 // \"Fliegendes Referenzieren\" erst nach Einschalten des Antriebes möglich0840 IF #sbRefTyp THEN08410842 // Referenziertyp auf \"Fliegendes Referenzieren\" einstellen0843 //#sxSendBuf.sxEPosSTW2.RefTyp := True;0844 #sxSendBuf.EPosSTW2.%X8 := True;08450846 // Nach der Anwahl des Referenziertyps \"Fliegendes Referenzieren\0847 // ein Zyklus später kann das Referenzieren gestartet0848 IF (#siRefTypCyc = 0) THEN0849 #siRefTypCyc := #siRefTypCyc + 1;0850 ELSE0851 // Referenzieren starten0852 //#sxSendBuf.sxSTW1.RefStart := True;0853 #sxSendBuf.STW1.%X11 := True;0854 END_IF;0855 END_IF;0856 END_IF;0857 ELSE0858 // Werte wieder zurücknehmen0859 (*#sxSendBuf.sxSTW1.Off1 := #Off1;0860 #sxSendBuf.sxSTW1.RejTrvTsk := False;0861 #sxSendBuf.sxSTW1.TrvStart := False;0862 #sxSendBuf.sxEPosSTW1.MdiStart := False;0863 #sxSendBuf.sxSTW1.Jog1 := False;0864 #sxSendBuf.sxSTW1.Jog2 := False;0865 #sxSendBuf.sxEPosSTW1.MdiTyp := False;0866 #sxSendBuf.sxEPosSTW1.MdiPos := False;0867 #sxSendBuf.sxEPosSTW1.MdiNeg := False;0868 #sxSendBuf.sxEPosSTW1.MdiTrTyp := False;0869 #sxSendBuf.sxEPosSTW1.MdiSetup := False;0870 #sxSendBuf.sxEPosSTW2.SetRefPt := False;0871 #sxSendBuf.sxEPosSTW2.RefTyp := False;0872 #sxSendBuf.sxEPosSTW2.RefStDi := False;0873 #sxSendBuf.sxEPosSTW2.JogInc := False;0874 #sxSendBuf.sxSTW1.RefStart := False;*)08750876 #sxSendBuf.STW1.%X0 := #EnableAxis;0877 #sxSendBuf.STW1.%X4 := False;0878 #sxSendBuf.STW1.%X6 := False;0879 #sxSendBuf.EPosSTW1.%X15 := False;0880 #sxSendBuf.STW1.%X8 := False;0881 #sxSendBuf.STW1.%X9 := False;0882 #sxSendBuf.EPosSTW1.%X8 := False;0883 #sxSendBuf.EPosSTW1.%X9 := False;Totally IntegratedAutomation Portal0884088508860887088808890890089108920893089408950896089708980899090009010902090309040905090609070908090909100911091209130914091509160917091809190920092109220923092409250926092709280929093009310932093309340935093609370938093909400941094209430944094509460947094809490950095109520953095409550956095709580959096009610962096309640965096609670968096909700971 #sxSendBuf.EPosSTW1.%X10 := False; #sxSendBuf.EPosSTW1.%X12 := False; #sxSendBuf.EPosSTW1.%X14 := False; #sxSendBuf.EPosSTW2.%X1 := False; #sxSendBuf.EPosSTW2.%X8 := False; #sxSendBuf.EPosSTW2.%X9 := False; #sxSendBuf.EPosSTW2.%X5 := False; #sxSendBuf.STW1.%X11 := False; END_IF; // Hauptbetriebsart \"Verfahrsätze\" (Traversing Blocks) //Den Eingang ConfigEPos auf die einzelnen Bits im Telegramm verschalten #sxSendBuf.STW1.%X1 := #ConfigEPos.%X0; #sxSendBuf.STW1.%X2 := #ConfigEPos.%X1; #sxSendBuf.EPosSTW2.%X14 := #ConfigEPos.%X2; #sxSendBuf.EPosSTW2.%X15 := #ConfigEPos.%X3; #sxSendBuf.EPosSTW2.%X11 := #ConfigEPos.%X4; #sxSendBuf.EPosSTW2.%X10 := #ConfigEPos.%X5; #sxSendBuf.EPosSTW2.%X2 := #ConfigEPos.%X6; #sxSendBuf.STW1.%X13 := #ConfigEPos.%X7; #sxSendBuf.EPosSTW1.%X12 := #ConfigEPos.%X8; #sxSendBuf.STW2.%X0 := #ConfigEPos.%X9; #sxSendBuf.STW2.%X1 := #ConfigEPos.%X10; #sxSendBuf.STW2.%X2 := #ConfigEPos.%X11; #sxSendBuf.STW2.%X3 := #ConfigEPos.%X12; #sxSendBuf.STW2.%X4 := #ConfigEPos.%X13; #sxSendBuf.STW2.%X7 := #ConfigEPos.%X14; #sxSendBuf.STW1.%X14 := #ConfigEPos.%X15; #sxSendBuf.STW1.%X15 := #ConfigEPos.%X16; #sxSendBuf.EPosSTW1.%X6 := #ConfigEPos.%X17; #sxSendBuf.EPosSTW1.%X7 := #ConfigEPos.%X18; #sxSendBuf.EPosSTW1.%X11 := #ConfigEPos.%X19; #sxSendBuf.EPosSTW1.%X13 := #ConfigEPos.%X20; #sxSendBuf.EPosSTW2.%X3 := #ConfigEPos.%X21; #sxSendBuf.EPosSTW2.%X4 := #ConfigEPos.%X22; #sxSendBuf.EPosSTW2.%X6 := #ConfigEPos.%X23; #sxSendBuf.EPosSTW2.%X7 := #ConfigEPos.%X24; #sxSendBuf.EPosSTW2.%X12 := #ConfigEPos.%X25; #sxSendBuf.EPosSTW2.%X13 := #ConfigEPos.%X26; #sxSendBuf.STW2.%X5 := #ConfigEPos.%X27; #sxSendBuf.STW2.%X6 := #ConfigEPos.%X28; #sxSendBuf.STW2.%X8 := #ConfigEPos.%X29; #sxSendBuf.STW2.%X9 := #ConfigEPos.%X30; #swSendBuf[0] := #sxSendBuf.STW1; #swSendBuf[1] := #sxSendBuf.EPosSTW1; #swSendBuf[2] := #sxSendBuf.EPosSTW2; #swSendBuf[3] := #sxSendBuf.STW2; #swSendBuf[4] := #sxSendBuf.OverrideV; #swSendBuf[5] := #sxSendBuf.Position.%W1; #swSendBuf[6] := #sxSendBuf.Position.%W0; #swSendBuf[7] := #sxSendBuf.Velocity.%W1; #swSendBuf[8] := #sxSendBuf.Velocity.%W0; #swSendBuf[9] := #sxSendBuf.OverrideA; #swSendBuf[10] := #sxSendBuf.OverrideD; #swSendBuf[11] := #sxSendBuf.Reserve; //Prozessdaten zur Signalbaugruppe schreiben #piRetSFC := DPWR_DAT(LADDR := #HWIDSTW, RECORD := #swSendBuf); // Fehler der Rückmeldung ausgeben #DiagID := INT_TO_WORD(#piRetSFC); //kein Fehler beim Schreiben IF #piRetSFC = 0 THEN //Prozessdaten von der Signalbaugruppe lesen #piRetSFC := DPRD_DAT(LADDR := #HWIDZSW, RECORD => #swRecvBuf); // Fehlermeldung der Rückmeldung ausgeben #DiagID := INT_TO_WORD(#piRetSFC); //Fehler beim Lesen (Profibus-Kommunikation unterbrochen) IF #piRetSFC <> 0 THEN // Fehler #Error := TRUE; #swStatus := 16#8600; // Zustandsworte löschen #sxRecvBuf.ZSW1 := W#16#0; #sxRecvBuf.EPosZSW1 := W#16#0; #sxRecvBuf.EPosZSW2 := W#16#0; #sxRecvBuf.ZSW2 := W#16#0; #sxRecvBuf.NotUsed := W#16#00; #sxRecvBuf.Position := DW#16#00;Totally IntegratedAutomation Portal0972097309740975097609770978097909800981098209830984098509860987098809890990099109920993099409950996099709980999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059 #sxRecvBuf.Velocity := DW#16#00; #sxRecvBuf.ErrNr := W#16#00; #sxRecvBuf.WarnNr := W#16#00; #sxRecvBuf.Reserve := W#16#00; // Werte auslesen ELSE #sxRecvBuf.ZSW1 := #swRecvBuf[0]; #sxRecvBuf.EPosZSW1 := #swRecvBuf[1]; #sxRecvBuf.EPosZSW2 := #swRecvBuf[2]; #sxRecvBuf.ZSW2 := #swRecvBuf[3]; #sxRecvBuf.NotUsed := #swRecvBuf[4]; #sxRecvBuf.Position.%W1 := #swRecvBuf[5]; #sxRecvBuf.Position.%W0 := #swRecvBuf[6]; #sxRecvBuf.Velocity.%W1 := #swRecvBuf[7]; #sxRecvBuf.Velocity.%W0 := #swRecvBuf[8]; #sxRecvBuf.ErrNr := #swRecvBuf[9]; #sxRecvBuf.WarnNr := #swRecvBuf[10]; #sxRecvBuf.Reserve := #swRecvBuf[11]; // ZSW1 aufbereiten //#Busy := #sxRecvBuf.sxZSW1.IOp; #sbBusy := #sxRecvBuf.ZSW1.%X2; // Fehler auswerten (*IF #sxRecvBuf.sxZSW1.Fault THEN #ErrorId := 5; #Error := True; ELSIF #sxRecvBuf.sxZSW1.PowInhbt THEN #ErrorId := 6; #Error := True; ELSE // Fehler wieder zurück nehmen IF (#ErrorId = 5) OR (#ErrorId = 6) THEN #ErrorId := 0; #Error := False; END_IF; END_IF;*) IF #sxRecvBuf.ZSW1.%X3 THEN #swStatus := 16#8401; #Error := True; ELSIF #sxRecvBuf.ZSW1.%X6 THEN #swStatus := 16#8402; #Error := True; ELSE // Fehler wieder zurück nehmen IF (#swStatus = 16#8401) OR (#swStatus = 16#8402) THEN #swStatus := 16#7002; #Error := False; END_IF; END_IF; // EPOS_ZSW1 // EPOS-Wort-1 BIT 00 --> 1 = Active traversing block bit 0 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit0 THEN IF #sxRecvBuf.EPosZSW1.%X0 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#01; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFFE; END_IF; // EPOS-Wort-1 Bit 01 --> 1 = Active traversing block bit 1 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit1 THEN IF #sxRecvBuf.EPosZSW1.%X1 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#02; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFFD; END_IF; // EPOS-Wort-1 Bit 02 --> 1 = Active traversing block bit 2 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit2 THEN IF #sxRecvBuf.EPosZSW1.%X2 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#04; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFFB; END_IF; // EPOS-Wort-1 Bit 03 --> 1 = Active traversing block bit 3 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit3 THEN IF #sxRecvBuf.EPosZSW1.%X3 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#08; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFF7; END_IF; // EPOS-Wort-1 Bit 04 --> 1 = Active traversing block bit 4 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit4 THEN IF #sxRecvBuf.EPosZSW1.%X4 THENTotally IntegratedAutomation Portal1060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147 #swEPosZSW1 := #swEPosZSW1 OR W#16#10; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFEF; END_IF; // EPOS-Wort-1 Bit 05 --> 1 = Active traversing block bit 5 //IF #sxRecvBuf.sxEPosZSW1.ActTrvBit5 THEN IF #sxRecvBuf.EPosZSW1.%X5 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#20; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FFDF; END_IF; // EPOS-Wort-1 Bit 08 --> 1 = STOP cam minus active //IF #sxRecvBuf.sxEPosZSW1.StpCamMinAct THEN IF #sxRecvBuf.EPosZSW1.%X8 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#100; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FEFF; END_IF; // EPOS-Wort-1 Bit 09 --> 1 = STOP cam plus active //IF #sxRecvBuf.sxEPosZSW1.StpCamPlsAct THEN IF #sxRecvBuf.EPosZSW1.%X9 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#200; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FDFF; END_IF; // EPOS-Wort-1 Bit 10 --> 1 = Jogging active //IF #sxRecvBuf.sxEPosZSW1.JogAct THEN IF #sxRecvBuf.EPosZSW1.%X10 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#400; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#FBFF; END_IF; // EPOS-Wort-1 Bit 11 --> 1 = Reference point approach active //IF #sxRecvBuf.sxEPosZSW1.RefAct THEN IF #sxRecvBuf.EPosZSW1.%X11 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#800; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#F7FF; END_IF; // Anstossen des fliegenden Referenzieren prüfen, wenn die Rückmeldung fehlt dann wiederholen //IF NOT #sxRecvBuf.sxEPosZSW1.FlyRefAct AND #sbRefTyp AND #sxSendBuf.sxSTW1.RefStart THEN IF NOT #sxRecvBuf.EPosZSW1.%X12 AND #sbRefTyp AND #sxSendBuf.STW1.%X11 THEN // Wiederholung anstossen IF #siRefActRetry < #siRetryMax THEN #siRefActRetry := #siRefActRetry + 1; // Referenzieren starten wieder wegnehmen //#sxSendBuf.sxSTW1.RefStart := False; #sxSendBuf.STW1.%X11 := False; ELSE // Fehlermeldung #swStatus := 16#8403; #Error := True; END_IF; ELSE // Fehler wieder zurücknehmen, wenn er mal ausgelöst wurde IF #swStatus = 16#8403 THEN #swStatus := 16#7002; #Error := False; END_IF; END_IF; // EPOS-Wort-1 Bit 12 --> 1 = Flying referencing active //IF #sxRecvBuf.sxEPosZSW1.FlyRefAct THEN IF #sxRecvBuf.EPosZSW1.%X12 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#1000; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#EFFF; END_IF; // EPOS-Wort-1 Bit 13 --> 1 = Traversing block active //IF #sxRecvBuf.sxEPosZSW1.TrvBlAct THEN IF #sxRecvBuf.EPosZSW1.%X13 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#2000; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#DFFF; END_IF; // EPOS-Wort-1 Bit 14 --> 1 = MDI setup activeTotally IntegratedAutomation Portal1148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235 //IF #sxRecvBuf.sxEPosZSW1.MdiStupAct THEN IF #sxRecvBuf.EPosZSW1.%X14 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#4000; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#BFFF; END_IF; // EPOS-Wort-1 Bit 15 --> 1 = MDI positing active //IF #sxRecvBuf.sxEPosZSW1.MdiPosAct THEN IF #sxRecvBuf.EPosZSW1.%X15 THEN #swEPosZSW1 := #swEPosZSW1 OR W#16#8000; ELSE #swEPosZSW1 := #swEPosZSW1 AND W#16#7FFF; END_IF; // EPOS_ZSW2 // EPOS-Wort-2 Bit 00 --> 1 = Tracking mode active //IF #sxRecvBuf.sxEPosZSW2.TrkModeAct THEN IF #sxRecvBuf.EPosZSW2.%X0 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#01; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFFE; END_IF; // EPOS-Wort-2 Bit 01 --> 1 = Velocity limit active //IF #sxRecvBuf.sxEPosZSW2.VeloLimAct THEN IF #sxRecvBuf.EPosZSW2.%X1 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#02; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFFD; END_IF; // EPOS-Wort-2 Bit 02 --> 1 = Setpoint static //IF #sxRecvBuf.sxEPosZSW2.SetPStat THEN IF #sxRecvBuf.EPosZSW2.%X2 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#04; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFFB; END_IF; // EPOS-Wort-2 Bit 03 --> 1 = Printmark outside outer window //IF #sxRecvBuf.sxEPosZSW2.PrnMrkOut THEN IF #sxRecvBuf.EPosZSW2.%X3 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#08; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFF7; END_IF; // EPOS-Wort-2 Bit 04 --> 1 = Axis forwards //IF #sxRecvBuf.sxEPosZSW2.FWD THEN IF #sxRecvBuf.EPosZSW2.%X4 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#10; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFEF; END_IF; // EPOS-Wort-2 Bit 05 --> 1 = Axis backwards //IF #sxRecvBuf.sxEPosZSW2.BWD THEN IF #sxRecvBuf.EPosZSW2.%X5 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#20; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFDF; END_IF; // EPOS-Wort-2 Bit 06 --> 1 = Software limit switch minus active //IF #sxRecvBuf.sxEPosZSW2.SftSwMinAct THEN IF #sxRecvBuf.EPosZSW2.%X6 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#40; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FFBF; END_IF; // EPOS-Wort-2 Bit 07 --> 1 = Software limit switch plus active //IF #sxRecvBuf.sxEPosZSW2.SftSwPlsAct THEN IF #sxRecvBuf.EPosZSW2.%X7 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#80; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FF7F; END_IF; // EPOS-Wort-2 Bit 08 --> 1 = Position actual value <= cam position 1 //IF #sxRecvBuf.sxEPosZSW2.PosSmCam1 THEN IF #sxRecvBuf.EPosZSW2.%X8 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#100; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FEFF; END_IF; Totally IntegratedAutomation Portal1236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323 // EPOS-Wort-2 Bit 09 --> 1 = Position actual value <= cam position 2 //IF #sxRecvBuf.sxEPosZSW2.PosSmCam2 THEN IF #sxRecvBuf.EPosZSW2.%X9 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#200; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FDFF; END_IF; // EPOS-Wort-2 Bit 10 --> 1 = Direct output 1 via traversing block //IF #sxRecvBuf.sxEPosZSW2.TrvOut1 THEN IF #sxRecvBuf.EPosZSW2.%X10 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#400; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#FBFF; END_IF; // EPOS-Wort-2 Bit 11 --> 1 = Direct output 2 via traversing block //IF #sxRecvBuf.sxEPosZSW2.TrvOut2 THEN IF #sxRecvBuf.EPosZSW2.%X11 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#800; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#F7FF; END_IF; // EPOS-Wort-2 Bit 12 --> 1 = Fixed STOP reached //IF #sxRecvBuf.sxEPosZSW2.FxStpRd THEN IF #sxRecvBuf.EPosZSW2.%X12 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#1000; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#EFFF; END_IF; // EPOS-Wort-2 Bit 13 --> 1 = Fixed STOP clamping torque reached //IF #sxRecvBuf.sxEPosZSW2.FxStpTrRd THEN IF #sxRecvBuf.EPosZSW2.%X13 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#2000; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#DFFF; END_IF; // EPOS-Wort-2 Bit 14 --> 1 = Traversing fixed STOP active //IF #sxRecvBuf.sxEPosZSW2.TrvFxStpAct THEN IF #sxRecvBuf.EPosZSW2.%X14 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#4000; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#BFFF; END_IF; // EPOS-Wort-2 Bit 15 --> 1 = Traversing command active //IF #sxRecvBuf.sxEPosZSW2.CmdAct THEN IF #sxRecvBuf.EPosZSW2.%X15 THEN #swEPosZSW2 := #swEPosZSW2 OR W#16#8000; ELSE #swEPosZSW2 := #swEPosZSW2 AND W#16#7FFF; END_IF; #sbReady := #sxRecvBuf.ZSW1.%X1; #AxisEnabled := #sxRecvBuf.ZSW1.%X2; #sbIOp := #sxRecvBuf.ZSW1.%X2; #AxisError := #sxRecvBuf.ZSW1.%X3; #sbFault := #sxRecvBuf.ZSW1.%X3; #AxisWarn := #sxRecvBuf.ZSW1.%X7; #sbAlarm := #sxRecvBuf.ZSW1.%X7; #AxisPosOk := #sxRecvBuf.ZSW1.%X10; #AxisRef := #sxRecvBuf.ZSW1.%X11; #sbAccel := #sxRecvBuf.ZSW1.%X14; #sbDecel := #sxRecvBuf.ZSW1.%X15; #ActVelocity := DWORD_TO_DINT(#sxRecvBuf.Velocity); #ActPosition := DWORD_TO_DINT(#sxRecvBuf.Position); #ActMode := #ModePos; #ActWarn := #sxRecvBuf.WarnNr; #ActFault := #sxRecvBuf.ErrNr; #Lockout := #sxRecvBuf.ZSW1.%X6; END_IF; END_IF; // Initialisierung von Ausg㭧en #Status := #swStatus; #EPosZSW1 := #swEPosZSW1; #EPosZSW2 := #swEPosZSW2; Totally IntegratedAutomation Portal符号#AckError#ActFault#ActMode#ActPosition#ActVelocity#ActWarn#AxisEnabled#AxisError#AxisPosOk#AxisRef#AxisWarn#CancelTraversing#ConfigEPos.%X0#ConfigEPos.%X1#ConfigEPos.%X2#ConfigEPos.%X3#ConfigEPos.%X4#ConfigEPos.%X5#ConfigEPos.%X6#ConfigEPos.%X7#ConfigEPos.%X8#ConfigEPos.%X9#ConfigEPos.%X10#ConfigEPos.%X11#ConfigEPos.%X12#ConfigEPos.%X13#ConfigEPos.%X14#ConfigEPos.%X15#ConfigEPos.%X16#ConfigEPos.%X17#ConfigEPos.%X18#ConfigEPos.%X19#ConfigEPos.%X20#ConfigEPos.%X21#ConfigEPos.%X22#ConfigEPos.%X23#ConfigEPos.%X24#ConfigEPos.%X25#ConfigEPos.%X26#ConfigEPos.%X27#ConfigEPos.%X28#ConfigEPos.%X29#ConfigEPos.%X30#DiagID#EnableAxis#EPosZSW1#EPosZSW2#Error#ExecuteMode#FlyRef#HWIDSTW#HWIDZSW#IntermediateStop#Jog1#Jog2#Lockout#ModePos#Negative#OverAcc#OverDec#OverV#piRetSFC#Position#Positive#sbAccel#sbAlarm#sbBusy#sbBWD#sbDecel#sbExecute#sbExecuteEdge#sbFault#sbFWD#sbIOp#sbJogInc#sbMdiStart#sbMdiStartEdge#sbModePos#sbOff1#sbOff1Edge#sbReady#sbRefTyp#sbRefTypEdge#siCycWait#siExecuteCyc地址类型BoolWordIntDIntDIntWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordBoolWordWordBoolBoolBoolHW_IOHW_IOBoolBoolBoolBoolIntBoolIntIntIntIntDIntBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolIntInt注释Totally IntegratedAutomation Portal符号#siJogIncCyc#siMdiStartCyc#siModePos#siModePosMax#siRefActRetry#siRefTypCyc#siRetryMax#Status#swEPosZSW1#swEPosZSW2#swRecvBuf#swRecvBuf[0]#swRecvBuf[1]#swRecvBuf[2]#swRecvBuf[3]#swRecvBuf[4]#swRecvBuf[5]#swRecvBuf[6]#swRecvBuf[7]#swRecvBuf[8]#swRecvBuf[9]#swRecvBuf[10]#swRecvBuf[11]#swSendBuf#swSendBuf[0]#swSendBuf[1]#swSendBuf[2]#swSendBuf[3]#swSendBuf[4]#swSendBuf[5]#swSendBuf[6]#swSendBuf[7]#swSendBuf[8]#swSendBuf[9]#swSendBuf[10]#swSendBuf[11]#swStatus#sxRecvBuf.EPosZSW1#sxRecvBuf.EPosZSW1.%X0#sxRecvBuf.EPosZSW1.%X1#sxRecvBuf.EPosZSW1.%X2#sxRecvBuf.EPosZSW1.%X3#sxRecvBuf.EPosZSW1.%X4#sxRecvBuf.EPosZSW1.%X5#sxRecvBuf.EPosZSW1.%X8#sxRecvBuf.EPosZSW1.%X9#sxRecvBuf.EPosZSW1.%X10#sxRecvBuf.EPosZSW1.%X11#sxRecvBuf.EPosZSW1.%X12#sxRecvBuf.EPosZSW1.%X13#sxRecvBuf.EPosZSW1.%X14#sxRecvBuf.EPosZSW1.%X15#sxRecvBuf.EPosZSW2#sxRecvBuf.EPosZSW2.%X0#sxRecvBuf.EPosZSW2.%X1#sxRecvBuf.EPosZSW2.%X2#sxRecvBuf.EPosZSW2.%X3#sxRecvBuf.EPosZSW2.%X4#sxRecvBuf.EPosZSW2.%X5#sxRecvBuf.EPosZSW2.%X6#sxRecvBuf.EPosZSW2.%X7#sxRecvBuf.EPosZSW2.%X8#sxRecvBuf.EPosZSW2.%X9#sxRecvBuf.EPosZSW2.%X10#sxRecvBuf.EPosZSW2.%X11#sxRecvBuf.EPosZSW2.%X12#sxRecvBuf.EPosZSW2.%X13#sxRecvBuf.EPosZSW2.%X14#sxRecvBuf.EPosZSW2.%X15#sxRecvBuf.ErrNr#sxRecvBuf.NotUsed#sxRecvBuf.Position#sxRecvBuf.Position.%W0#sxRecvBuf.Position.%W1#sxRecvBuf.Reserve#sxRecvBuf.Velocity#sxRecvBuf.Velocity.%W0#sxRecvBuf.Velocity.%W1#sxRecvBuf.WarnNr#sxRecvBuf.ZSW1#sxRecvBuf.ZSW1.%X1#sxRecvBuf.ZSW1.%X2#sxRecvBuf.ZSW1.%X3#sxRecvBuf.ZSW1.%X6#sxRecvBuf.ZSW1.%X7地址类型IntIntIntIntIntIntIntWordWordWordArrayWordWordWordWordWordWordWordWordWordWordWordWordArrayWordWordWordWordWordWordWordWordWordWordWordWordWordWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordWordDWordWordWordWordDWordWordWordWordWordBoolBoolBoolBoolBool注释Totally IntegratedAutomation Portal符号#sxRecvBuf.ZSW1.%X10#sxRecvBuf.ZSW1.%X11#sxRecvBuf.ZSW1.%X14#sxRecvBuf.ZSW1.%X15#sxRecvBuf.ZSW2#sxSendBuf.EPosSTW1#sxSendBuf.EPosSTW1.%X0#sxSendBuf.EPosSTW1.%X1#sxSendBuf.EPosSTW1.%X2#sxSendBuf.EPosSTW1.%X3#sxSendBuf.EPosSTW1.%X4#sxSendBuf.EPosSTW1.%X5#sxSendBuf.EPosSTW1.%X6#sxSendBuf.EPosSTW1.%X7#sxSendBuf.EPosSTW1.%X8#sxSendBuf.EPosSTW1.%X9#sxSendBuf.EPosSTW1.%X10#sxSendBuf.EPosSTW1.%X11#sxSendBuf.EPosSTW1.%X12#sxSendBuf.EPosSTW1.%X13#sxSendBuf.EPosSTW1.%X14#sxSendBuf.EPosSTW1.%X15#sxSendBuf.EPosSTW2#sxSendBuf.EPosSTW2.%X1#sxSendBuf.EPosSTW2.%X2#sxSendBuf.EPosSTW2.%X3#sxSendBuf.EPosSTW2.%X4#sxSendBuf.EPosSTW2.%X5#sxSendBuf.EPosSTW2.%X6#sxSendBuf.EPosSTW2.%X7#sxSendBuf.EPosSTW2.%X8#sxSendBuf.EPosSTW2.%X9#sxSendBuf.EPosSTW2.%X10#sxSendBuf.EPosSTW2.%X11#sxSendBuf.EPosSTW2.%X12#sxSendBuf.EPosSTW2.%X13#sxSendBuf.EPosSTW2.%X14#sxSendBuf.EPosSTW2.%X15#sxSendBuf.OverrideA#sxSendBuf.OverrideD#sxSendBuf.OverrideV#sxSendBuf.Position#sxSendBuf.Position.%W0#sxSendBuf.Position.%W1#sxSendBuf.Reserve#sxSendBuf.STW1#sxSendBuf.STW1.%X0#sxSendBuf.STW1.%X1#sxSendBuf.STW1.%X2#sxSendBuf.STW1.%X3#sxSendBuf.STW1.%X4#sxSendBuf.STW1.%X5#sxSendBuf.STW1.%X6#sxSendBuf.STW1.%X7#sxSendBuf.STW1.%X8#sxSendBuf.STW1.%X9#sxSendBuf.STW1.%X10#sxSendBuf.STW1.%X11#sxSendBuf.STW1.%X13#sxSendBuf.STW1.%X14#sxSendBuf.STW1.%X15#sxSendBuf.STW2#sxSendBuf.STW2.%X0#sxSendBuf.STW2.%X1#sxSendBuf.STW2.%X2#sxSendBuf.STW2.%X3#sxSendBuf.STW2.%X4#sxSendBuf.STW2.%X5#sxSendBuf.STW2.%X6#sxSendBuf.STW2.%X7#sxSendBuf.STW2.%X8#sxSendBuf.STW2.%X9#sxSendBuf.Velocity#sxSendBuf.Velocity.%W0#sxSendBuf.Velocity.%W1#Velocity地址类型BoolBoolBoolBoolWordWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordWordWordDWordWordWordWordWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolDWordWordWordDInt注释Totally IntegratedAutomation Portal程序块SINA_POS_DB [DB284]SINA_POS_DB 属性常规名称SINA_POS_DB编号手动信息标题4.6版本编号284类型DB语言DB作者用户自定义 ID数据类型起始值DRVDPS7SINA_POS注释从在 HMI 工设定值HMI/程组态中可OPC见UA可写TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse系列监控DRIVES名称保持可从HMI/OPCUA 访问注释InputModePosEnableAxisCancelTraversingIntermediateStopPositiveNegativeJog1Jog2FlyRefAckErrorExecuteModePositionVelocityOverVOverAccOverDecConfigEPosHWIDSTWHWIDZSWOutputErrorStatusDiagIDAxisEnabledAxisErrorAxisWarnAxisPosOkAxisRefActVelocityActPositionActModeLockoutEPosZSW1EPosZSW2ActWarnActFaultInOutStaticsbOff1EdgesbOff1sbExecuteEdgesbExecutesbRefTypEdgesbRefTypsbMdiStartsbMdiStartEdgesbRefStartsbJogIncsbReadysbIOpsbAccelsbDecelsbAlarmsbFaultsbFWDsbBWDsbBusyswStatusswEPosZSW1swEPosZSW2siExecuteCycsiRefTypCycIntBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolDIntDIntIntIntIntDWordHW_IOHW_IOBoolWordWordBoolBoolBoolBoolBoolDIntDIntIntBoolWordWordWordWord001100000000010010010016#0000_0003000000000000000000FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolBoolWordWordWordIntInt000000000000000000016#000016#000016#000000FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTotally IntegratedAutomation Portal名称数据类型起始值保持可从HMI/OPCUA 访问从HMI/OPCUA可写TrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrue在 HMI 工设定值程组态中可见监控注释siJogIncCycsiMdiStartCycsiRefActRetrysiModePossiModePosMaxsiCycWaitsiRetryMaxsbModePossxSendBufSTW1EPosSTW1EPosSTW2STW2OverrideVPositionVelocityOverrideAOverrideDReservesxRecvBufZSW1EPosZSW1EPosZSW2ZSW2NotUsedPositionVelocityErrNrWarnNrReserveIntIntIntIntIntIntIntBoolStructWordWordWordWordWordDWordDWordWordWordWordStructWordWordWordWordWordDWordDWordWordWordWord0000145150WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000DWORD#16#0000_0000DWORD#16#0000_0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000WORD#16#0000DWORD#16#0000_0000DWORD#16#0000_0000WORD#16#0000WORD#16#0000WORD#16#0000FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTotally IntegratedAutomation Portal程序块 / 系统块 / 程序资源IEC_Timer_0_DB [DB1]IEC_Timer_0_DB 属性常规名称IEC_Timer_0_DB编号自动信息标题1.0版本名称编号1类型DB语言DB作者用户自定义 ID数据类型起始值SimaticIEC_TMR保持注释从在 HMI 工设定值HMI/程组态中可OPC见UA可写系列IEC注释可从HMI/OPCUA 访问监控StaticPTETINQTimeTimeBoolBoolT#0msT#0msfalsefalseFalseFalseFalseFalseTrueTrueTrueTrueTrueFalseTrueFalseTrueTrueTrueTrueFalseFalseFalseFalse链接:https://pan.baidu.com/s/1xlQML1JQLmy8eRw_3sTtqg 提取码:5yli 复制这段内容后打开百度网盘手机App,操作更方便哦FB284功能块使用说明连接如下:https://wenku.baidu.com/view/4b50fd391cd9ad51f01dc281e53a580216fc5094
因篇幅问题不能全部显示,请点此查看更多更全内容