julio2017
Imprimirestapgina GenerarPDF
Tipodeartculo:FAQ,IDdeartculo365590,Fechadelartculo:12/02/2007
EnqusediferencianlasoperacionesparaeldireccionamientoindirectoentreelSTEP7yelSTEP5?
Instrucciones:
EneldireccionamientoindirectoenelSTEP7,sediferenciaentre:
1. Eldireccionamientoindirectopormemoriaconunnmero:
Paraeldireccionamientodetemporizadores,contadores,ymdulos,
2. Eldireccionamientoindirectoporregistroconunpunteroderea:
Paraeldireccionamientodezonasdememoria:Periferia,entradas,salidas,marcas,datosglobales(DBX),datosdeinstancia(DIX)ydatoslocales.
direccionamientoindirectopormemoriaconunnmero
Ejemplos:
STEP7 AnalogaenelSTEP5
L2 Cargaunnmero LKF+2 Cargaunnmero
TMW33 Guardarenlapalabrademarcas33 TMW33 Guardarenlapalabrademarcas33
LT[MW33] Cargaenvalordetiempoactualdeltemporizador2 BMW33 Elaboralapalabrademarcas33
LT0 Cargaenvalordetiempoactualdeltemporizador2
....... ....... ....... .......
AUFDB[MW33] AbreelDB2 BMW33 Elaboralapalabrademarcas33
ADB0 AbreelDB2
....... ....... ....... .......
CCFC[MW33] LlamaalFC2siVKE=1: BMW33 Elaboralapalabrademarcas33
Slofunciona, SPBFC0 LlamadaalFC2siVKE=1:
siFC2notieneparmetros SlofuncionasiFC2notieneparmetros
Eloperandodeladireccin,enlaqueseguardaelnmero(enestecaso,laMW33),puedeestarenlazonade
Marcas,datosglobales(DBX),datosdeinstancia(DIX)ydatosLocales.Lautilizacindelosdatosdeinstanciade
zona(DIX)paraeloperandodeladireccinsoloesposibleenlosmdulosdefuncin(FBs)conCODE_VERSION1(noen
losFBsconcapacidaddemultinstancia).
Direccionamientoindirectoporregistrosconayudadelpunteroderea
Ejemploconunpunterodereainterno
STEP7 AnalogaenelSTEP5
LP#4.5 CargaelpunteroparaelByte4,Bit5 LKF+4 CargaelnmerodeByte
LKF+5 CargaelnmerodeBit
SLW8 DesplazaelnmerodeBitalBytealto
OW BitenelBytealto,ByteenelBytebajo
Ejemploparaunpunterodereaexterno:
STEP7 AnalogaenelSTEP5
LP#M2.3 CargaelpunteroparalaM2.3
Clculosdelpuntero
Unapropiedaddecisivadelpunterodereaesquelosclculosdelpunterosepuedenrealizarconlasoperaciones
normalesparacomafija.Estoquieredecirlosiguienteencualquierpuntero:
Sumade1:ElpunteroaumentaalsiguienteBit
Sumade8:ElpunteroaumentaalsiguienteByte,elnmerodeBitpermaneceinvariante.
Ejemplos:
STEP7 AnalogaenelSTEP5
LP#M2.3 CargaelpunteroparalaM2.3
LP#4.5 CargaelpunteroparaelByte4,Bit5 ....... .......
+D Resultado:ElpunteroapuntaalaM7.0,esdecir,
estas3instruccionestienenelmismosignificadoque:
LP#M7.0
....... ....... ....... .......
LP#DBX2.3 CargaelpunteroparaelBitdedatosglobal2.3
L16 Carga16 .......
-D Elpunterosereduceen16Bits,esdecir,estas3
instruccionestienenelmismosignificadoque:L
P#DBX0.3
Enlosclculosconpunterosderea,slosepuedeutilizarunpunterocondenominacinderea(diferenteacero).
Encasocontrario,lasposicionesdelidentificadorderease"suman"o"restan",yapareceunaidentificacinnovlida.
Direccionamientoindirectopormemoriaconayudadelpunteroderea
Ejemplos:
STEP7 AnalogaenelSTEP5
LP#2.0 CargaelpunteroparaelByte2,Bit0 LKF+2 CargaelnmerodeByte
TMD44 Seguardaenladoblepalabrademarcas44 LKF+0 CargaelnmerodeBit
UE[MD44] Consultadelaentrada2.0parasabersivale"1" SLW8 DesplazaelnmerodeBitalBytealto
OW BitenelBytealto,ByteenelBytebajo
TMW44 Seguardaenlapalabrademarcas44
BMW44 Elaboralapalabrademarcas44
UE0.0 Consultadelaentrada2.0
parasabersivale"1"
......... .......... ....... .......
L123 Carga123 LKF+123 Carga123
TMW[MD44] Guardael123enlapalabrademarcas2 BMW44 Editalapalabrademarcas44
TMW0 Guardael123enlapalabrademarcas2
Paralacolocacindelosoperandosdelasdirecciones(enestecaso,laMD44)enlasposiblesreasdememoria,son
vlidaslasmismasdeclaracionesqueconeldireccionamientoindirectoconunnmero(consultearriba).Ladiferenciaes
quesenecesitaunadoblepalabra.
Eneldireccionamientoindirectopormemoria,elidentificadordereaenelpunterotienequeser0.Slosepueden
utilizarpunterosinternosderea.
EnelaccesoindirectoaunByte,palabraodoblepalabra,ladireccindelBitenelpunterotienequeser0.
Direccionamientoindirectoporregistrosconayudadelpunteroderea
Ejemplos:
STEP7 AnalogaenelSTEP5
Ejemploa
LP#2.0 CargaelpunteroparaelByte2,Bit0
LAR1 Cargaelpunteroenelregistrodedirecciones1 .......
//Direccionamientoindirectoporregistroconunreainterna
UE[AR1,P#0.0] Consultadelaentrada2.0parasabersivale"1"
Ejemplob
LAR1P#E2.0 Cargaelpunteroparalaentrada2.0
//Direccionamientoindirectoporregistroconunreaexterna .......
U[AR1,P#0.0] Consultadelaentrada2.0parasabersivale"1" .......
Ejemploc
LAR1P#DBX2.0 Cargaelpunteroparaelbitdedatosglobales2.0
LMW[AR1,P#0.0] Cargalapalabrademarcas2
....... .......
Ejemplod1
LAR1P#A2.0 Cargaelpunteroparalasalida2.0enelAR1
=[AR1,P#2.2] AsignaelVKEactualalasalida4.2
Ejemplod2
+AR1P#2.0 Aumentaelpunteroenelregistroen2Bytes
TW[AR1,P#0.0] Escribedesdelapalabrabajadelacumulador1enla .......
palabradesalida4.0
LP#4.5 CargaelpunteroparaelByte4,Bit5
+AR1 AumentaelpunteroenelregistroconelAKKU1
S[AR1,P#1.0] Activalasalida9.5siVKE=1
Eneldireccionamientoindirectoporregistros,elpunteropuedetenerunidentificadorderea:
Sifaltaelidentificador(ejemploa),hayqueindicarloenlasinstruccionesindirectasporregistro
Sielidentificadorestdentrodelpuntero(ejemplob),puedefaltarenlasinstruccionesindirectasporregistro.TengaencuentaenestecasoquehayqueindicarelanchodeaccesoByte,Word,DobleWorden
lasoperacionesdecargaytransferencia(ejemplod2).
Sielidentificadorestdentrodelpunteroyseindicaenlainstruccin(ejemploc),valeelreaindicadaenlainstruccin
Elidentificadorenelpunteroseignora.
Enlasinstruccionesindirectasporregistro,sepuedeindicarunOFFSET(ejemplod).stesesumaalpunterodelregistro
encasodeejecutarseelacceso.Elcontenidodelregistropermaneceinvariante.
LautilizacindelidentificadordereaLenelpunteronoesposibleenlasCPUsantiguas.
ElOFFSETindicadoentrecorchetes[AR1,<OFFSET>]puedeestardentrodelrangoP#0.0.....P#8191.7.
Lainstruccin"+AR1"slotieneencuentalapalabrabajadelOFFSETindicadoenelAKKU1ocomooperando,e
interpretalos16Bitscomounnmeroconsigno:
P#0.0.....P#4095.7
esunOFFSETpositivoparael"+AR1"y
P#4096.0.....P#8191.7
esunOFFSETnegativoparael"+AR1".
Ejemplos:
LP#0.1 OFFSETpositivomspequeoparael"+AR1"
+AR1 AumentaelcontenidodeAR1enP#0.1
......... .........
LP#4095.7 OFFSETpositivomsgrandeparael"+AR1"
+AR1 AumentaelcontenidodeAR1enP#4095.7
....... .......
LP#4096.0 OFFSETnegativomsgrandeparael"+AR1":Secorrespondecon"P#-4096.0"
+AR1 SereduceelcontenidoAR1enP#4096.0
....... .......
LP#M8191.0 Secorrespondecon"P#-1.0"("+AR1"ignoraelidentificador"M")
+AR1 SereduceelcontenidoAR1enP#1.0!
....... .......
LP#8191.7 OFFSETnegativomspequeoparael"+AR1":Secorrespondecon"P#-0.1"
+AR1 SereduceelcontenidoAR1enP#0.1!
....... .......
LP#E8192.0 SecorrespondeconP#0.0"("+AR1"ignoraelidentificador"E")
+AR1 ElcontenidodelAR1nosemodifica
Debidoaquelaoperacin"+AR1"slotieneencuentalapalabrabajadelAKKU1,tambinsepuedenutilizarpunteros
conidentificadorderea:ElidentificadornomolestaenlapalabraaltaAlcontrarioqueenelclculodelpunterocon
operacionesconenteros.
Porfavor,tengaencuentaque,independientementedelasposibilidadesparaaumentarydisminuirelregistrode
direccionesenunainstruccinindirectaporregistros,elcontenidodelregistrosiempretienequeestardentrodelrango
P<identificadoreventual>0.0.....P<identificadoreventual>65535.7.
Indicacingeneral
Deformaanlogaalregistrodedirecciones1,enlasCPUsexisteunsegundoregistroAR2conlasmismasposibilidades
deutilizacin.
Siseutilizaelregistrodedirecciones,existenlimitaciones,quesinosetienenencuentapuedenprovocarreacciones
inesperadasenelprogramadeusuario.InformacinmsdetalladasepuedeverenlaayudadelSTEP7,bajolapalabra
debsqueda"AR1".
Ayudaparaelegirlasposibilidadesdeldireccionamientoindirecto:
Siseutilizaelregistrodedirecciones,espreferibleelegireldireccionamientoindirectoporregistrosconpunterosdereainternos
Elreadememoriallamadaporlainstruccinseveenlamisma.Deestaforma,elprogramaesmsclaro,haymenosposibilidadesdefalloysermejorparaelmantenimiento
Enestecaso,nohayquetenerencuentalavidatildelosoperandosdelasdirecciones.Lautilizacindelregistrodedireccionesesposibleactualmente,independientementedelDBabiertoolosdatos
locales.
Lasventajasdelautilizacindeldireccionamientoindirectopormemoria,conunpunteroenlazonademarcas,sonlas
siguientes:
Nosetienenencuentalaslimitacionesparalautilizacindelregistro
Tampocohayquetenerencuentalavidatildelosoperandosdelasdirecciones,porquelazonademarcasestdisponiblesinlimitacionesentodoslospuntosdelprograma.
Sepuedenutilizarvariospunterosenparalelo.
Sinembargo,nosedisponedelacmodaposibilidaddel"+ARi"nidelaindicacindeunOFFSET.
UnaadvertenciaparatrabajarconpunterosopunterosANY:
Amboscontienenelpunterodereaenlos32bitsmsbajos,talcomosehamostradoarriba.
Alutilizareldireccionamientoindirecto,loserroresdeprogramacinnosuelenaparecertanrpidamentecomocuando
seutilizaeldireccionamientodirecto.Adems,nosolopuedequelazonadememoriadeseadaaparezcaenunpuntoque
nosehatenidoencuenta,sinoquesepierdandatossinquererdeotraszonasdememoria.Portanto,procedacon
cuidado,ycompruebeelprogramaconprofundidad.
Advertencia:
EnlaayudaOnlinedelSTEP7,sedisponedeinformacinadicionalyejemplosen
FormatodeltipodeparmetroANY,
FormatodeltipodeparmetroPOINTER,
UtilizacindeltipodeparmetroPOINTER,
UtilizacindeltipodeparmetroANY.
Elartculoperteneceala(s)carpeta(s)derboldeproductos:
Esteartculoestrelacionadocon4producto(s).