Nogle der kan Step7

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
hej NG.

dette er det mest passende forum jeg kunne finde (ved godt emnet ikke
passer helt ind)


jeg skal lave en lille programstump i step7 som skal bruges flere gange.
i programstumpen skal jeg bruge nogle værdier fra en db blok og 2
værdier fra det generelle program,
jeg skal bruge programstumpen 20 gange hvor jeg skal hente værdier fra
20 ens paramentereret db blokke



de 2 værdier jeg skal bruge fra programmet henter jeg bare ind ved at
define dem som in variabler men hvordan laver jeg det med databasen ?


er jeg virkelig nød til at lave 20 fb'er eller er der en bedere måde ?

Re: Nogle der kan Step7
Intet svar sorry, men ren nysgerrighed.
Hva dulen er Step7 ?

Mvh
  Klavs.

Quoted text here. Click to load it

Re: Nogle der kan Step7
det er Siemens PLC software til deres S7-300, S7-400 PLC'er.

En PLC er den enhed der styre de fleste moderne automatiske anlæg.

Re: Nogle der kan Step7

Quoted text here. Click to load it

For perfektion: PLC er en forkortelse af Programmable Logic Controller
På københavnsk: Process controller
På Jysk: Industri Styring

Bo //



Re: Nogle der kan Step7
Hej Bo,


Quoted text here. Click to load it

Og i midten af riget ? (Ikke riget i midten :)


--
Venlig hilsen,
Søren
We've slightly trimmed the long signature. Click to see the full one.
Re: Nogle der kan Step7
Quoted text here. Click to load it
Siemens's seneste softvare til deres PLCer, som bruges til styringer i
industrien
--
Calle.



Re: Nogle der kan Step7
Hej
Jeg spurgte en af mine venner som er gammel Step7/Step5 (og altmuligt andet)
programmør.
Jeg håber nedenstående, længere, forklaring kan hjælpe noget:

Et kort svar.

Søg i STEP7's hjælp, evt. pointer eller data type ANY.

Nederst er et uddrag fra hjælpen, hvor der anvendes SFC20 med en
Source-pointer og en Destination-pointer.
I praksis betyder det at man kan kopiere x antal bits, bytes, ord eller
dobbeltord, startende fra en given adresse i en given datablok,
til en given adresse i en given datablok. Dette eksempel kan kun laves i
STL.

----------------------------------------------------------------------------
-----------------------------------------

Hvis man ikke ønsker en helt så avanceret funktion kan man angive faste
værdier for Source og destination i POINTER-format.

Eksempel hvor pointeren angives som faste adresse:
Kopiere 20 bytes fra DB10 til DB20 fra adresse 50 (DBB50)
Eksemplet er vist som STL men kan også laves i LAD.

CALL SFC 20
SRCBLK := P#DB10.DBB0 BYTES 20
RET_VAL := MW 0
DSTBLK := P#DB20.DBB50 BYTES 20

Forklaring:
P# angiver at formatet er af typen POINTER
DB10.DBB0 angiver at pointeren skal stille sig på byte 0 i datablok 10
BYTES 20 angiver længden på den mængde data der skal kopieres

MW0 er et tilfældigt ord som vil indeholde status for SFC20.


----------------------------------------------------------------------------
-----------------------------------------
Using the Parameter Type ANY

You can define formal parameters for a block that are suitable for actual
parameters of any data type. This is particularly useful when the data type
of the actual parameter that is provided when the block is called is unknown
or can vary (and when any data type is permitted). In the variable
declaration of the block, you declare the parameter as data type ANY. You
can then assign an actual parameter of any data type in STEP 7.

STEP 7 assigns 80 bits of memory for a variable of the ANY data type. If you
assign an actual parameter to this formal parameter, STEP 7 codes the start
address, the data type, and the length of the actual parameter in the 80
bits. The called block analyzes the 80 bits of data saved for the ANY
parameter and obtains the information required for further processing.

Assigning an Actual Parameter to an ANY Parameter

If you declare the data type ANY for a parameter, you can assign an actual
parameter of any data type to the formal parameter. In STEP 7, you can
assign the following data types as actual parameters:

  a.. Elementary data types: you specify the absolute address or the
symbolic name of the actual parameter.

  b.. Complex data types: you specify the symbolic name of the data with a
complex data type (for example, arrays and structures).

  c.. Timers, counters, and blocks: you specify the number (for example, T1,
C20, or FB6).

  d.. The following figure shows how data are transferred to an FC with
parameters of the ANY data type.




In this example, FC100 has three parameters (in_par1, in_par2, and in_par3)
declared as the ANY data type.

  a.. When FB10 calls FC100, FB10 transfers an integer (the static variable
speed), a word (MW100), and a double word to DB10 (DB10.DBD40).

  b.. When FB11 calls FC100, FB11 transfers an array of real numbers (the
temporary variable "Thermo"), a Boolean value (M 1.3), and a timer (T2).

Specifying a Data Area for an ANY Parameter

You can assign not only individual addresses (for example, MW100) to an ANY
parameter but you can also specify a data area. If you want to assign a data
area as the actual parameter, use the following format of a constant to
specify the amount of data to be transferred:

p#    Area ID Byte.Bit  Data Type  Repetition Factor

For the data type element, you can specify all elementary data types and the
data type DATE_AND_TIME in the format for constants. If the data type is not
BOOL, the bit address of 0 (x.0) must be specified. The following table
illustrates examples of the format for specifying memory areas to be
transferred to an ANY parameter.


      Actual Parameter
     Description

      p# M 50.0 BYTE 10
     Specifies 10 bytes in the byte memory area:
      MB50 to MB59.

      p# DB10.DBX5.0 S5TIME 3
     Specifies 3 units of data of the data type S5TIME, that are located in
DB10:
      DB byte 5 to DB byte 10.

      p# Q 10.0 BOOL 4
     Specifies 4 bits in the output area:
      Q 10.0 to Q 10.3.

Example for Using the Parameter Type ANY

The following example shows how you can copy a memory area of 10 bytes using
the parameter type ANY and the system function SFC20 BLKMOV.


      STL
     Explanation

      FUNCTION FC10: VOID
      VAR_TEMP
      Source : ANY;
      Target : ANY;
      END_VAR
      BEGIN
      LAR1 P#Source;

      L  B#16#10;
      T LB[AR1,P#0.0];

      L B#16#02;
      T LB[AR1,P#1.0];

      L 10;
      T LW[AR1,P#2.0];

      L 22;
      T LW[AR1,P#4.0];
      L P#DBX11.0;
      T LD[AR1,P#6.0];

      LAR1 P#Target;

      L  B#16#10;
      T LB[AR1,P#0.0];

      L B#16#02;
      T LB[AR1,P#1.0];

      L 10;
      T LW[AR1,P#2.0];

      L 33;
      T LW[AR1,P#4.0];
      L P#DBX202.0;
      T LD[AR1,P#6.0];

      CALL SFC 20 (
      SRCBLK := Source,
      RET_VAL := MW 12,
      DSTBLK := Target
      );
      END_FUNCTION

      ----------------------------------------------------------------------
-----------------------------------------------


      Jeg ved ikke om ovenstående giver nogen mening, men det var det bedste
jeg lige kunne komme op med her.
      Du må gerne videresende min evige moralprædken for andre
PLC-programmører.
      "Lær og forstå Siemens' datatyper"
      Så er man godt hjulpet fremover........


/Anton
Quoted text here. Click to load it



Re: Nogle der kan Step7

MANGE tak....... lige hvad jeg skulle bruge, du må sige mange tak til
din ven :)....




Site Timeline