Technical Forum

STEP 7 / STEP 7 Lite

Pointer Information

Erstellt von YogendraG am 08.05.2012 14:18 (12 Antworten)

« Vorheriges Thema Nächstes Thema »
12» Seite 1 von 2 (13 Objekte)
  08.05.2012, 14:18
Beigetreten am: 09.11.2008
Letzter Besuch: 15.04.2014
Beiträge: 227
Bewertung:
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Hi All,

  I need some help regarding pointer. I have seen in my project. Code developer use pointer function and I want to know following thing.
 
 1. In pointer format why he used SLD 3. See the following e.g. please let me explain why we need to use SLD 3 in pointer function? 
  
    OPN   DB [#DB_Nummer]            
      L     #START_ADDR                
      SLD   3
      LAR1  

Regards,

Yogendra G.

Top
  08.05.2012, 14:26
Beigetreten am: 28.09.2005
Letzter Besuch: 06.03.2014
Beiträge: 2927
Bewertung:
Bewertung: Exzellent [4,03 von 5 / 213 mal bewertet]. (213) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
YogendraG wrote:
Hi All,

  I need some help regarding pointer. I have seen in my project. Code developer use pointer function and I want to know following thing.
 
 1. In pointer format why he used SLD 3. See the following e.g. please let me explain why we need to use SLD 3 in pointer function? 
  
    OPN   DB [#DB_Nummer]            
      L     #START_ADDR                
      SLD   3
      LAR1  

Regards,

Yogendra G.



Well its because 3 least significant bits are used for bit addressing. As long as you load from #START_ADDR byte addressing, you need to shift it to left by 3 places to leave 3 zeroes for bit addressing. For more understanding please open Step-7 help and search on topic

Format of the Parameter Type POINTER

I just don't like to post here all help system page laugh


Regards,
--------------------------------
Darius
Automation engineer/programmer
Top
  08.05.2012, 14:28
Beigetreten am: 14.02.2008
Letzter Besuch: 07.04.2014
Beiträge: 557
Bewertung:
Bewertung: Exzellent [4,48 von 5 / 60 mal bewertet]. (60) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Hello,

    OPN   DB [#DB_Nummer]            
      L     #START_ADDR             // if your address 255
      SLD   3                                // 255*8
      LAR1                                   // (255*8)/8

second option
    OPN   DB [#DB_Nummer]            
      L     #START_ADDR                
      L 8
      *D
      LAR1  

there are 3 method

L

P#8.7

Load the value of the pointer into accumulator 1.

T

MD2

Transfer the pointer to MD2.

A

I [MD2]

Query the signal state at input bit I 8.7 and

=

Q [MD2]

assign the signal state to output bit Q 8.7.



L

P#8.7

Load the value of the pointer into accumulator 1.

LAR1

 

Load the pointer from accumulator 1 into AR1.

A

I [AR1, P#0.0]

Query the signal state at input bit I 8.7 and

=

Q [AR1, P#1.1]

assign the signal state to output bit Q 10.0.


L

P# I8.7

Load the value of the pointer and the area identification in accumulator 1.

LAR1

 

Load memory area I and the address 8.7 into AR1.

L

P# Q8.7

Load the value of the pointer and the area identification in accumulator 1.

LAR2

 

Load memory area Q and the address 8.7 into AR2.

A

[AR1, P#0.0]

Query the signal state at input bit I 8.7 and

=

[AR2, P#1.1]

assign the signal state to output bit Q 10.0.




Top
  08.05.2012, 15:22
Beigetreten am: 16.12.2011
Letzter Besuch: 17.04.2014
Beiträge: 362
Bewertung:
Bewertung: Überdurchschnittlich [3 von 5 / 7 mal bewertet]. (7) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
  
Hai Yogendra,

SLD3 - Byte pointer -- If you need data in byte oriented format you can use this[ eg, 1st byte,2nd byte etc] 

SLD4 - Word Pointer -- If you need data in word oriented format you can use this[ eg, 1st,2nd byte, 3rd,4thbyte etc] 

SLD5 - Double word pointer -- If you need data in doubleword oriented format you can use this[ eg, floating values] 

Thanks&regards,
Raj


Top
  08.05.2012, 15:41
Beigetreten am: 28.09.2005
Letzter Besuch: 06.03.2014
Beiträge: 2927
Bewertung:
Bewertung: Exzellent [4,03 von 5 / 213 mal bewertet]. (213) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Karnan wrote:
  
Hai Yogendra,

SLD3 - Byte pointer -- If you need data in byte oriented format you can use this[ eg, 1st byte,2nd byte etc] 

SLD4 - Word Pointer -- If you need data in word oriented format you can use this[ eg, 1st,2nd byte, 3rd,4thbyte etc] 

SLD5 - Double word pointer -- If you need data in doubleword oriented format you can use this[ eg, floating values] 

Thanks&regards,
Raj




Aha... now I'm interested. We here speak about POINTER data type. After I saw your post I've opened again Step-7 help to see pointer format and I'm sorry, but I have no idea of what will happen after lets say SLD4. Can you please make more detailed post as you information is very interesting to me (honestly never heard of it).

Regards,
--------------------------------
Darius
Automation engineer/programmer
Top
  08.05.2012, 15:42
Beigetreten am: 28.09.2005
Letzter Besuch: 06.03.2014
Beiträge: 2927
Bewertung:
Bewertung: Exzellent [4,03 von 5 / 213 mal bewertet]. (213) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
BTW data types is only in ANY pointer, but still I don't understand how you achieve this with SLD4, SLD5....

Regards,
--------------------------------
Darius
Automation engineer/programmer
Top
  09.05.2012, 08:31
Beigetreten am: 16.12.2011
Letzter Besuch: 17.04.2014
Beiträge: 362
Bewertung:
Bewertung: Überdurchschnittlich [3 von 5 / 7 mal bewertet]. (7) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Hai Darius,

Sorry for Delay,as per your reply,i prepared one program,

L 100
SLD 3
LAR1
L PIW[AR1,P#0.0]
T MW10

From the abow example,with SLD 3,I am reding the PIW100 in MW10 !!!

L 100
SLD 4
LAR1
L PIW[AR1,P#0.0]
T MW20

From the abow example,with SLD4,I am reading the PIW200 in MW20 !!!

L 100
SLD 5
LAR1
L PIW[AR1,P#0.0]
T MW30

From the abow example,with SLD5,I am reading the PIW400 in MW20 !!!

I thiank you understood what i mean by .....

Please check it and if any problem with my workout please let me know,because i am a little baby in pointer...

Sorry for miss understood previously,...

Thanks & regards,
Raj
Top
  09.05.2012, 08:53
Beigetreten am: 28.09.2005
Letzter Besuch: 06.03.2014
Beiträge: 2927
Bewertung:
Bewertung: Exzellent [4,03 von 5 / 213 mal bewertet]. (213) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Well now I understand, but it has nothing to do with a WORD, DWORD or REAL. You just multiply by 2 bu shifting left one position more. This approach could be be little bit missunderstanding as SLD3 is required to free 3 least significant bits for bit addressing. SLD4 is acceptable, but better maybe go SLD3 and then multiply by 2. It would be more 'correct' approach.

Regards,
--------------------------------
Darius
Automation engineer/programmer
Top
Für diesen Beitrag bedankt sich:
  09.05.2012, 09:02
Beigetreten am: 16.12.2011
Letzter Besuch: 17.04.2014
Beiträge: 362
Bewertung:
Bewertung: Überdurchschnittlich [3 von 5 / 7 mal bewertet]. (7) 
Bewertung: Gut [1 von 5 / 1 mal bewertet]. (1) 
Hai Darius,

Thanks for your information..

From My previous Thread you may get in confused with Your huge knowledge in pointers, Sorry for that ....

Thanks & Regards,
Raj
Top
Für diesen Beitrag bedankt sich:
  11.05.2012, 04:55
Beigetreten am: 09.11.2008
Letzter Besuch: 15.04.2014
Beiträge: 227
Bewertung:
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
Bewertung: keine [0 von 5 / 0 mal bewertet]. (0) 
  
Thanks Karnan & Darius for your valuable information.one more question when we use 3 least significant bits? Please give me some example.



Regards,

Yogendra G.



=== Edited by YogendraG @ 5/13/2012 5:13 AM [GMT ] ===


Top
12» Seite 1 von 2 (13 Objekte)
Aktionen