Download as pdf or txt
Download as pdf or txt
You are on page 1of 62

20   

 
(     )

          !"#$%&  GP-Pro EX


 %' (  #" #$%&
 %""  '  20.1 ) %$'  (" 20-2) "*+' "   "

20.1   .......................................................................................................................................20-2


20.2   ........................................................................................................................20-5
20.3   ................................................................................................................20-12
20.4      .....................................................................................20-18
20.5  !"#$ % & "$" ......................................................................20-22
20.6   "$ ....................................................................................................................20-40
20.7   $ ..........................................................................................................20-44
20.8 ' .......................................................................................................................20-50
20.9 .............................................................................................................................................20-55

20-1
 

20.1  
D-Scripts ,- . +'//" /*0)"!"#  12 +  #2 !" +" $34#  1!"$34#%
 2   $ GP  ## '  $ GP 34&%''+'

() D-Scripts/Global D-Scripts % !' &(+,- )&%(


 %&+(++
ËÁÒÂà赯   %$' D-Scripts 2 "   " '  4 +
4" 2 # )'"*  !"#$%&
 #2  Global D-Scripts  $ GP 2   +'' " #*+'
2  %  + ( &)
 Extended Scripts !"#2  ## #)

   GP-Pro EX 20-2


 

  
    7
   !"# 3 !$
ËÅѧ¨Ò¡ ËÅѧ¨Ò¡ ËÅѧ¨Ò¡
1 ÇÔ¹Ò·Õ 2 ÇÔ¹Ò·Õ 3 ÇÔ¹Ò·Õ
àÇÅÒ
»ÃÐÁÇżÅʤÃÔ»µ »ÃÐÁÇżŠ»ÃÐÁÇżŠ»ÃÐÁÇżÅ

D100=1 D100=2 D100=3     (  20-6)


  (  20-5)

D100 äÁ‹ãª‹ 3 ´Ñ§¹Ñé¹ D100 äÁ‹ãª‹ 3 ´Ñ§¹Ñé¹ D100 = 3 ´Ñ§¹Ñé¹


¤ÓÊÑ觷ÕèÍÂÙ‹ËÅѧ “if” ¤ÓÊÑ觷ÕèÍÂÙ‹ËÅѧ “if” à§×è͹ä¢à»š¹¨ÃÔ§áÅÐ
¨ÐäÁ‹·Ó§Ò¹ ¨ÐäÁ‹·Ó§Ò¹ [w:LSD008]=7
¨Ð·Ó§Ò¹

   


 %& !'( (0  1)  )*'
M0100 *!+$,'#!-./0& ##!$
)*&

D0099 C D0200 C

    (  20-13)


B B
  (  20-12)
D0000 A D0101 A

   GP-Pro EX 20-3


 

    


''./1+ !' $"%./$
0& #! **!* && )*,'+./1+
(D200) %(2' (*  70°C (# &
2' (*  30°C #  (')!"%
$ !%'!

Screen 1 Screen 2
D200≥70
Tank temperature Temperature is     (  20-19)
D200 50 too high!!
  (  20-18)

D20
0≤3
0
Screen 3

Temperature is
too low.

   !"# #$% "  # 


 Extended Script %&+$#' 0& 
'% USB #&%%$ '% COM1 *''.

Product Name: Pro-face Price: 1234 Yen


Product Name: ABC Price: 567 Yen
Product Name: DEF Price: 89 Yen

GP

Product Name and Price printer output     (  20-35)
Product Name
(1000)
Price
(0500)
  (  20-22)
Pro-face 12345 Yen

Print Start Button


(005000)

Start ແ´

Í‹Ò¹¢ŒÍÁÙÅ “Product Name” áÅÐ


“Price” ¨Ò¡ºÒÏ⤌´

   GP-Pro EX 20-4


  

20.2  !


ËÁÒÂà赯  '     $2 2  %$'
 20.8.1    (D-Script) (  20-50)


#" #$%&/*  " %' ( ,"   7  %%    0' + 3  
ËÅѧ¨Ò¡ ËÅѧ¨Ò¡ ËÅѧ¨Ò¡
1 ÇÔ¹Ò·Õ 2 ÇÔ¹Ò·Õ 3 ÇÔ¹Ò·Õ
àÇÅÒ
»ÃÐÁÇżÅʤÃÔ»µ »ÃÐÁÇżŠ»ÃÐÁÇżŠ»ÃÐÁÇżÅ

D100=1 D100=2 D100=3

D100 äÁ‹ãª‹ 3 ´Ñ§¹Ñé¹ D100 äÁ‹ãª‹ 3 ´Ñ§¹Ñé¹ D100 = 3 ´Ñ§¹Ñé¹


¤ÓÊÑ觷ÕèÍÂÙ‹ËÅѧ “if” ¤ÓÊÑ觷ÕèÍÂÙ‹ËÅѧ “if” à§×è͹ä¢à»š¹¨ÃÔ§áÅÐ
¨ÐäÁ‹·Ó§Ò¹ ¨ÐäÁ‹·Ó§Ò¹ [w:LSD008]=7
¨Ð·Ó§Ò¹

  
    &'"(
Assignment (=) )345!-*345 
Addition (+) %$-*+./0!
if ( ) &&#1-!,' ( ) $+  if  '')'!
$+!) if ( )
Equivalent (==) '$'345 *! &#345 $'345!
$,'#!-(
LS0008
 A.1.4.2 !"# !! (  A-10)


 Timer % - " '  "%$' [Timer Settings] , 1  

   GP-Pro EX 20-5


  

 

 
1  ) [Common Settings] - $2 # [Global D-Script Settings]

2 $ [Create]   ,  " !"#$%&  +"' "  "3  ID "$ [Edit]

   GP-Pro EX 20-6


  

3 '%"% [Global D-Script]  5*

4 % + 2  #$%& ( &)  Timer % - " '  "%$' [Timer Settings]
, 1  

   GP-Pro EX 20-7


  

5 $6 [Tool Box] $34#  1!"' $ #'$2 #!"+"#$%&+" ' ' 
 $'$$2 #%" 

6 #" #$%&1  2  1%$' %" D00100 , 0 "  $' *$ 1
3$ 01
$ [Address Input Dialog]  [Word Address] "$

7 7 D00100 "$ [ENT]

   GP-Pro EX 20-8


  

8  [Tool Box] "$ [Assignment (=)]

9 2 /2 % 6 1* 7  #' D00100 $*

10 $ [Addition (+)] "7 1 1 #6#)4&"

11 #" #$%&1# 1#  +-  6 ( )  )'%  if ,
2   )'"$ $2 # if ( )
$ [if - endif]

   GP-Pro EX 20-9


  

12 #" & + 6 ( )  )' if & +    $'  6+" D00100  3
 + , $' ' 
 $& /&" )' 6 ( ) "2 /2 % 6 1* 7 #' D00100 *$

13 $ [Equivalent (==)] "7 3 1# #6#)4&"

14  $& /&" )' 68 { } "*' 2 /2 % 6 1* 7 #' LS0008 $*

15 $ [Assignment (=)] "7 7

   GP-Pro EX 20-10


  

16 #$%& #6#)4&

   GP-Pro EX 20-11


 

20.3  "!! "#"$!


ËÁÒÂà赯  '     $2 2  %$'
 20.8.1    (D-Script) (  20-50)


#" #$%& %  * (0   , 1) %2 '% M0100 "$") 6+"
34& !%'++"%2 '

D0099 C D0200 C

B B
D0000 A D0101 A

  
    &'"(
$,'#!-./$)%(!
Copy ''+  )*# )*!$
Memory  )*!*.+ $
memcpy ( ) [Format]
memcpy ([ )*$], [ )*$] )!!)

% * "%$' [Bit Address] , M000100

 

   GP-Pro EX 20-12


 

 
1  ) [Part] - $2 # [D-Script] $

2 $ [Create]    #$%&+""   ID  5*

   GP-Pro EX 20-13


 

3 '%"% [ D-Script]  5*

4 % + 2  #$%& ( &) % * "%$' [Bit Address] , M000100

   GP-Pro EX 20-14


 

5 $6 [Function] $34#  1#'$2 #!"#$%&+" ' '   $'$$2 #%" 


9:&!%' ( " 

6  [Memory Operation]   )) & [Built-in Function (Instruction)]

7  $ [Copy Memory]  "%$' %2 '   %2 '%"  2 %2 '
'%"% $

   GP-Pro EX 20-15


 

8 7 D00101 "$ [ENT]

9 72 %2 ' , 100 2 /2 % 8  %$' %2 ' &%"  , D00000 "$ [OK]

   GP-Pro EX 20-16


 

10 #$%& #6#)4&

   GP-Pro EX 20-17


  !"

20.4    %! ! !& "


ËÁÒÂà赯  '     $2 2  %$'
 20.8.1    (D-Script) (  20-50)


 34-)% %"0  34& !%'+" #"$ " %
%2 ' 6")34-) (D200) $' *1*%%' 70°C *+ $' 1*
%%' 30°C +  #$%&2 "0 %"

Screen 1 Screen 2
D200≥70
Tank temperature Temperature is
D200 50 too high!!

D20
0≤ 3
0
Screen 3

Temperature is
too low.

        D200   70°C !" #  $%    : LS0300
        D200 ##  30°C #!" #  $%    : LS0301
 $ &'#($)*($$() : LS0302

  
    &'"(

if ( ) &&#1-!,' ( ) $+  if  '')'!


$+!) if ( )
more than or  N1 !&$' N2 (N1 >= N2)
equal to (>=)
Assignment (=) )345!-*345 
Addition (+) %$-*+./0!
less than or  N1 !&$' N2 (N1 <= N2)
equal to (<=)


% * "%$' [Bit Address] , M000100

   GP-Pro EX 20-18


  !"

 

 
1  ) [Part] - $2 # [D-Script] $

2 $ [Create]    #$%&+""   ID  5*

   GP-Pro EX 20-19


  !"

3 '%"% [ D-Script]  5*

4 3$2   7 Alarm Display

5 % + 2  #$%& ( &) % * "%$' [Bit Address] , M000100

   GP-Pro EX 20-20


  !"

6 #" 2    79:&! "$ $2 # &  %$'  #6#)4&

   GP-Pro EX 20-21


#$%&"' ( $&$ 

20.5 !#!' *!+     !#


ËÁÒÂà赯  '     $2 2  %$'
 20.8.1    (D-Script) (  20-50)

  
#"  Extended Script  #'")' +"  &$"/* !%'&% USB +  $&%'
&% COM13

Product Name: Pro-face Price: 1234 Yen


Product Name: ABC Price: 567 Yen
Product Name: DEF Price: 89 Yen

GP

Product Name and Price printer output


Product Name Price
(1000) (0500)
Pro-face 12345 Yen

Print Start Button


(005000)

Start ແ´

Í‹Ò¹¢ŒÍÁÙÅ “Product Name” áÅÐ


“Price” ¨Ò¡ºÒÏ⤌´

   GP-Pro EX 20-22


#$%&"' ( $&$ 

 ! Extended Script


Extended Script $ #$%&!"## ' &%3-  GP 34&3%/  %&%3
 !%' )' ; 
#2   ") Extended Script % #)- " '  ")1) 6+" databuf0
1* databuf3  0'  9 9& #'/") databuf +'1)'% %2 ' 
"+") 34&/PLC  6")' +"' $ 2 - '2  "+

GP

ºÑ¿à¿ÍÏ
ºÑ¿à¿ÍÏ databuf0
¡ÒÃÃѺ¢ŒÍÁÙÅ databuf1
ÍØ»¡Ã³/PLC Extended Script
ºÑ¿à¿ÍÏ databuf2
¡ÒÃÊ‹§¢ŒÍÁÙÅ databuf3

˹‹Ç¤ÇÒÁ¨ÓÀÒÂã¹
¾×é¹·Õè LS, USR ÏÅÏ

))&/))& 
#2  ## 34&/PLC 9 9&2 "  ,' $ 2 %/*$   ")
+"")#'  +&

databuf0 *+ databuf3
 9& ' $' $ 2 +%& (8 %) /*2 "  ,%2 ' 6")  %'9 9&
  '  1 KB

   GP-Pro EX 20-23


#$%&"' ( $&$ 

 ! 
¿˜§¡ªÑ¹ËÅÑ¡
¡Ó˹´Ç‹Ò¨ÐàÃÔèÁ¾ÔÁ¾ËÃ×ÍäÁ‹ àÁ×èÍáµÐ·Õè Printer Start Button

INIT (¿˜§¡ªÑ¹·Õè¡Ó˹´â´Â¼ÙŒãªŒ)
µÑ駤‹Ò¡ÒÃàÃÔèÁ¡Ò÷ӧҹ¢Í§ºÑ¿à¿ÍÏ¡ÒÃÊ‹§¢ŒÍÁÙÅ, ºÑ¿à¿ÍÏ¡ÒÃÃѺ¢ŒÍÁÙÅ
áÅТŒÍ¼Ô´¾ÅÒ´

PINIT (¿˜§¡ªÑ¹·Õè¡Ó˹´â´Â¼ÙŒãªŒ)
àÃÔèÁ¡Ò÷ӧҹ¢Í§à¤Ã×èͧ¾ÔÁ¾

Strset (¿˜§¡ªÑ¹·Õè¡Ó˹´â´Â¼ÙŒãªŒ)
à»ÅÕè¹ÃٻẺ¢Í§¢ŒÍÁÙÅà¾×èÍâ͹¢ŒÍÁÙÅ¡ÒþÔÁ¾ä»·Õèà¤Ã×èͧ¾ÔÁ¾

Print (¿˜§¡ªÑ¹·Õè¡Ó˹´â´Â¼ÙŒãªŒ)
à¾ÔèÁ “¡ÒâÖ鹺Ã÷ѴãËÁ‹” à¾×èÍãËŒà¤Ã×èͧ¾ÔÁ¾¾ÔÁ¾ä´ŒÍ‹ҧµ‹Íà¹×èͧ
áÅÐâ͹¢ŒÍÁÙÅ¡ÒþÔÁ¾ä»·Õèà¤Ã×èͧ¾ÔÁ¾

   GP-Pro EX 20-24


#$%&"' ( $&$ 

 &
(1) ¡Ãкǹ¡ÒÃËÅÑ¡ (2) ¿˜§¡ªÑ¹¡ÒÃàÃÔèÁ¡Ò÷ӧҹ (INT)

¡Ãкǹ¡ÒÃËÅÑ¡ ¡ÒÃàÃÔèÁ¡Ò÷ӧҹ

Ōҧ¢ŒÍÁÙÅ㹺ѿà¿ÍÏ
ºÔµàÃÔèÁµŒ¹¡ÒÃÊ×èÍÊÒà ¡ÒÃÊ‹§¢ŒÍÁÙÅ
äÁ‹ãª‹
ແ´

㪋 ºÔµàÃÔèÁµŒ¹¡ÒÃÊ×èÍÊÒÃ
»´ Ōҧ¢ŒÍÁÙÅ㹺ѿà¿ÍÏ
¡ÒÃÃѺ¢ŒÍÁÙÅ

ÁÕ¢ŒÍÁÙÅ¡ÒÃÃѺÍÂÙ‹ äÁ‹ãª‹

Ōҧ¢ŒÍ¼Ô´¾ÅÒ´
㪋

¡ÒÃàÃÔèÁ¡Ò÷ӧҹ¢Í§
Extended SIO
àÊÃç¨ÊÔé¹

¡ÒÃàÃÔèÁ¡Ò÷ӧҹ
¢Í§à¤Ã×èͧ¾ÔÁ¾

¡ÒÃÊ‹§¢ŒÍÁÙÅ

   GP-Pro EX 20-25


#$%&"' ( $&$ 

(3) ¿˜§¡ªÑ¹¡ÒÃàÃÔèÁ¡Ò÷ӧҹ¢Í§à¤Ã×èͧ¾ÔÁ¾ (PRINT) (4) ¿˜§¡ªÑ¹ÊµÃÔ§ (Strset)

¡ÒÃàÃÔèÁ¡Ò÷ӧҹ¢Í§à¤Ã×èͧ¾ÔÁ¾ Ê‹§

¡Ó˹´¢ŒÍÁÙÅ¡ÒÃàÃÔèÁ µÑ駤‹ÒʵÃԧʋǹËÑÇ
¡Ò÷ӧҹ¢Í§à¤Ã×èͧ¾ÔÁ¾ ãËŒºÑ¿à¿ÍÏ¢ŒÍÁÙÅ
ãËŒºÑ¿à¿ÍÏ¢ŒÍÁÙÅ

Ê‹§¢ŒÍÁÙÅ ÅÙ» 1

á»Å§¢ŒÍÁÙÅ·Õè¡Ó˹´ãËŒµÓá˹‹§
â´Âá»Å§¨Ò¡¤‹ÒàÅ¢°Ò¹Êͧ
ãˌ໚¹ÃËÑÊ ASCII
àÊÃç¨ÊÔé¹
á»Å§¢ŒÍÁÙÅ
ÂÒÇ 30 ÍÑ¡¢ÃÐáÅŒÇ?
ÅÙ» 1

µÑ駤‹ÒʵÃԧʋǹ·ŒÒÂ
ãËŒºÑ¿à¿ÍÏ¢ŒÍÁÙÅ

àÊÃç¨ÊÔé¹

   GP-Pro EX 20-26


#$%&"' ( $&$ 

(5) ¿˜§¡ªÑ¹Ê‹§ (Print)

Ê‹§

àÃÕ¡¢ŒÍÁÙÅ¡ÒÃÊ‹§

¡Ó˹´¢ŒÍÁÙźÃ÷ѴãËÁ‹
ãËŒºÑ¿à¿ÍÏ¢ŒÍÁÙÅ

Ê‹§¢ŒÍÁÙÅ

àÊÃç¨ÊÔé¹

   GP-Pro EX 20-27


#$%&"' ( $&$ 

. &'"()
 $&('

#$ ), &-
3< Start  $& (' $ 2 -  005000) #1  ON " 4 '  &
 +%&") Print Permit +'
") Print Permit 2  %'+  ,% ' ")2   $&
Print Preparation OK: Send 0x31 (ASCII code 1) to the device/PLC.
Print Preparation Invalid: Send 0x30 (ASCII code 0) to the device/PLC.

GP ") Print Permit  databuf0 " " ")+' $ 2 -  100 /* " 1*+"' '
"   #$%&%'+

   GP-Pro EX 20-28


#$%&"' ( $&$ 

' $ 2 -  100 +"") 0x31 (ASCII code 1)  & * +"")
0x30 (ASCII code 0) GP + 3 %""5%%/2 ' +"") 0x31
˹ŒÒ¨Í·ÕèÊÌҧ¢Öé¹

Product Name and Price printer output


Product Name Price
(1000) (0500)
Pro-face 12345 Yen

Print Start Button


(005000) 1 (ASCII)
Start ແ´ ËÃ×Í
1 (ASCII)

databuf0 ˹‹Ç¤ÇÒÁ¨ÓÀÒÂã¹ 100


1 1

. INIT (&'"(%)*+ ()


 $&('

#$ ), &-
%$'    2  9 9& #'") 9 9& ") "0 

. PINIT (&'"(%)*+()
 $&('

   GP-Pro EX 20-29


#$%&"' ( $&$ 

#$ ), &-
 2   $& #'$2 # ESC/P ESC+@ +  $&
GP

1 2
databuf0 databuf1
0x1B 0x40
( “ESC” ) ( “@” )

3
databuf0
“ESC+@”
( “ESC+@” )

   GP-Pro EX 20-30


#$%&"' ( $&$ 

. Strset (&'"(%)*+()
 $&('

#$ ), &-
1  "$  Price:  Yen ") $  6 )'%2 ' 0500 ' $ 2 - 
¨Ò¡Ë¹ŒÒ¨Í
Price
(0500)
GP
YYY Yen

1
databuf0 databuf1 2
à»ÅÕè¹¢ŒÍ¤ÇÒÁ
Price: XXX áÅŒÇà¡çºänj㹠databuf1

3
databuf0

Price: XXX GP

3 4
databuf0 databuf1

Price: XXX Yen

5
databuf0

Price: XXX Yen

   GP-Pro EX 20-31


#$%&"' ( $&$ 

2  )") #'") &+  $& '")#% (Product Name)  6+"
% 2 %2 ' 1000 ' $ 2 -  ,' +%& " 6")' %2 '
2000 1* 2030 ' $ 2 -   6 ,")#%+%&' 
!"9:&! _ldcopy  6") databuf2 % 2 +%&' #3%2 ' &%' 
ËÁÒÂà赯  9:&! _ldcopy 2 ")+ 6+" , &  6 ; +%&2 %2 ' 9 9&
 +'#")+%&2 #)'

¨Ò¡Ë¹ŒÒ¨Í
Product Name
(1000)
Pro-face

à¡çº¢ŒÍÁÙÅ໚¹Ë¹‹ÇÂ亵
˹‹Ç¤ÇÒÁ¨ÓÀÒÂã¹ databuf2
(16 ºÔµ) (8 bit)
2000 0 P databuf2[0] P
2001 0 r databuf2[1] r
2002 0 o à¡çºà»š¹äºµÅӴѺµèÓ·Õè databuf2[2] o
2003 0 - databuf2[3] -
databuf 2
2004 0 f databuf2[4] f
2005 0 a databuf2[5] a
2006 0 c databuf2[6] c
2007 0 e databuf2[7] e
2008 0 0 databuf2[8] 0
: : :
2030 0 0 databuf2[30] 0

3  "$  Product Name:  Price  databuf2


GP

1 2
databuf1 databuf2

Product Name: Pro-face

3
databuf1

Product Name: Pro-face GP

3 4
databuf1 databuf0

Product Name: Pro-face Price: XXX Yen

5
databuf1

Product Name: Pro-face Price: XXX Yen

   GP-Pro EX 20-32


#$%&"' ( $&$ 

. Print (&'"(%)*+()
 $&('

#$ ), &-
1   *' " $&&+" ' %' 
GP

1 2
databuf1 databuf0
Product Name: Pro-face Price: XXX Yen 0x0d
("CR")

3
databuf1

Product Name: Pro-face Price: XXX Yen "CR"


GP

3 4
databuf1 databuf0
Product Name: Pro-face Price: XXX Yen "CR" 0x0a
("LF")

5
databuf1

Product Name: Pro-face Price: XXX Yen "CR" "LF"

   GP-Pro EX 20-33


#$%&"' ( $&$ 

2 %$' ") &" $&


˹ŒÒ¨Í·ÕèÊÌҧ¢Öé¹

Product Name and Price printer output


Product Name Price
(1000) (0500)
Pro-face 12345 Yen

Print Start Button


(005000)

Start ແ´ Product Name: Pro-face Price: XXX Yen "CR" "LF"

 
    &'"(
&&#1-!,' ( ) $+  if  '')'!
if ( ) $+!) if ( )
Label Settings */+ ()!#' ) $#'-!( +$#'./' 
[r:EXT_SIO_RECV] *''!
Equivalent (==)  N1 $' N2 (N1 = N2)
Text Settings (_strset) ,' *''  !-'66+
Extended Receive '+ $'.-+$#' (#' )  Extended SIO
(IO_READ_EX) *!,'#!-'66+
From Data Buffer to Internal + * #' $,'#!-6 , '66+ 2+#%&($ LS
Device (_dlcopy) )! 
Label Settings !*!'.(-0%&+-'66+ '66'+
[c:EXT_SIO_CTRL∗∗] *2"%
Connect Text (_strcat) 0& &!'66!
Text Length (_strlen) '!! $,'#!
Extended Send
+-'66+! Extended SIO )!#' $
(IO_WRITE_EX)
Assignment (=) )345!-*345 
Addition (+) %$-*+./0!
Numeric Value Decimal String -0640( %&*)! ,- 7'
Conversion (_bin2decasc)
From Internal Device + $,'+-%&($ LS 2+#'66+ )! 
To Data Buffer (_ldcopy) -2+*''#' #'

   GP-Pro EX 20-34


#$%&"' ( $&$ 

 !
1 2  Extended Script !" ##  $ [Project] - [System Settings] - [Script Settings]
%#"'' +"%$' [Type] , [Extended Script] "

6#2 %$' #$%&"  2 6 )- " !"6 [Script 1]


%$' [Port] , COM1  COM2 "%$' [Communication Settings] "% Extended SIO

2  [Extended Script Settings]   ) [Common Settings]

   GP-Pro EX 20-35


#$%&"' ( $&$ 

3    INIT ,9:&!2  0)"!" $6 [Function] "$3< [Create] 
User Define Function

4 7 [INIT] ,!9:&! $ [OK] " %'+ 5*

   GP-Pro EX 20-36


#$%&"' ( $&$ 

5 #" #$%& Execution Expression "  7$2 # "$ $2 # $' $

6 5%% %0'      PINIT ,9:&!2  0)"!" 7 [PINIT] ,!9:&!
"#" #$%&%'+ Execution Expression

   GP-Pro EX 20-37


#$%&"' ( $&$ 

7 5%% %0'      Strset ,9:&!2  0)"!" 7 [Strset] ,!9:&!
"#" #$%&%'+ Execution Expression

(1)

(2)

(3)

8 5%% %0'      Print ,9:&!2  0)"!" 7 [Print] ,!9:&!
"#" #$%&%'+ Execution Expression

   GP-Pro EX 20-38


#$%&"' ( $&$ 

9 #" #$%& #" #$%&%'+ Execution Expression  %$'  #6#)4&

ËÁÒÂà赯  #'9:&!2  0)"!"#" * 3 1* 9 #$%& " 9:&!


#' "$ [Call] 6 [Function] 9:&!1)#' !" !9:&!  !"

   GP-Pro EX 20-39


  $&

20.6 ! 
20.6.1 ! D-Scripts/Global D-Scripts
8 [Global D-Script Settings] +
8 [D-Script] + [Part]
[Common Settings]

 [Create] ./-0 $$'  [Create] ./-0 $$'


#!( -'. ID *! [Edit] #!( -'. ID *! [Edit]
&''$*2! ID &''$*2! ID

(&#$$$)- $) )'+% !'640( +$


20.7  (&#$ ( 20-44)

 (%))  $'+% !')*640  +$


21.13 ) ( 21-98)

   GP-Pro EX 20-40


  $&

20.6.2 ! Extended Script


8 [System Settings] + [Project]  [Script Settings]   ' #( 9(
&-0 Extended Script -& [Type]  [Extended Script] *!)% 0& 

8 [Extended Script Settings] + [Common Settings]

 (%))  $'+% !')*640  +$


'$$ 21 )*% * ( 21-1)

   GP-Pro EX 20-41


  $&

20.6.3 !!789 &


  #$%&#" *" ,9:&!2  0)"!"/*#$%& #  1!" +"  D-Script,
Global D-Script,  Extended Script #  1!"9: &!  +"+"

 !
&'"() #%)*+(
$ [Create]   ' User Defined Function 9(

&'"(%)*+(%, %+$
&640$)"+-0$./ *# *! [Edit]
640$)"+-0$$'#!9(

:0&640 *! -68 Execution Expression  [OK] 640$)"+-0


#' $'*!

ËÁÒÂà˵Ø

 )!'0&$2-00&640# )'+%  +$


20.9.3 )640$)"+-0 ( 20-59)

   GP-Pro EX 20-42


  $&

&640$)"+-0$-0  [Call] 0&640$-0 2+--68 Execution


Expression

¢ŒÍÊÓ¤ÑÞ  /0 $)&(1+)&+)  "$ /0 $) %',


&+/0 $) 2 &  - Extended Script  D-Scripts ( Global D-Scripts 

   GP-Pro EX 20-43


  &

20.7 !!
#$%&#" *#  1!" +  & 7 !%'+
-#  .+
Continuous Action  2+$  
Timer  2+$'!$)
Bit ON & GP !%'' $)% 0  1  2+$
Bit OFF & GP !%''' $)  2+$
Bit
& GP !%'' $)% 0  1 & 1  0
Bit Change
 2+$
When Condition
is Satisfied & GP !%'!%$)#!   2+$
Condition
Expression When Condition
is not Satisfied & GP !%'!%$)#! $,  2+$

20.7.1 Continuous Action


2  %    #2  #0

20.7.2 Timer
 Timer
#$%&2  3$$   2 +" $34#  1%   %%  +"%%' 1 1*
32,767  
t   t  

t [ ]
   

ËÁÒÂà赯   %  9:&!%%  $'   "  2 +" + "0 
  !"##0   9:&!%%   2  +"!" * )'  !" 
  "   !"&")" #2 ")  %    #2  #0
)  3 "2  &% (" 20-47)
 !" D-Script    " 2 "9:&!%%    0 '

   GP-Pro EX 20-44


  &

20.7.3 Bit
 Bit ON
 GP %' %2 '%2 +" ( &%) $'   0 , 1 #$%&1) &



   

ËÁÒÂà赯  2      == &%"    '    


 ##   #2  #0 *'     '  #2 ")  %
 9:&! )  3 "2  &% (" 20-47)

 Bit OFF
 GP %' %2 '%2 +" ( &%) $'   1 , 0 #$%&1) &



   

ËÁÒÂà赯  2      == &%"    '    


 ##   #2  #0 *'     '  #2 ")  %
 9:&! )  3 "2  &% (" 20-47)

 Bit Change
 GP %' %2 '%2 +" ( &%) $'   0 , 1   1 , 0
#$%&1) &



   

ËÁÒÂà赯  2      == &%"    '    


 ##   #2  #0 *'     '  #2 ")  %
 9:&! )  3 "2  &% (" 20-47)

   GP-Pro EX 20-45


  &

20.7.4 Condition Expression


 When Condition is Satisfied
#$%&2  *$  GP %' &2  &$' ,
% '  %$' +  & , 100>[D100]>50 #$%&2  %   %'+
#$%&2    GP %' +    [Not Satisfied]→[Satisfied] 2 $'
70 "%2 ' D100
  +   [Satisfied]→[Satisfied] #$%&+'2  

   

ËÁÒÂà赯  2     +  &"    '    


 ##   #2  #0 *'     '  #2 ")  %
 9:&! )  3 "2  &% (" 20-47)
 When Condition is not Satisfied
#$%&2  *$  GP %' &2  &$' , 6
% '  %$' +  & , 100>[D100]>50 #$%&2  %   %'+
#$%&2    GP %' +   
[Satisfied]→[Not Satisfied] 2 $' 20 "%2 ' D100
  +   [Not Satisfied]→[Not Satisfied] #$%&+'2  

   

ËÁÒÂà赯  2     +  &"    '    


 ##   #2  #0 *'     '  #2 ")  %
 9:&! )  3 "2  &% (" 20-47)

   GP-Pro EX 20-46


  &

 !% !!#
 2       ")34& !%'"    '    
 ##     ")34& !%' )' !"%2  #  & >.-  GP
,2 ' $   "0  ## "0 +"
 %$' %!" +  & D-Script " , % %'%=40
D-Script    !" % 4#0#/2 (  $ 2 "%+'  *%+"
 & D-Script     $' ' $'$' ' +":3  4 '  &
4$' ,  +'  ' +6%  '  #%'$ $'  6+"%2 '%
!"'   & ,$'   "' $'   +' #$%&2  6% 
' $' ' #$%'+ ' 
*!'&:
!'& &!$-0-+*)+ GP
#$ PLC +2+,'+7- )* LS2037
./1- !!$ (ms) !&$'
±10 !$

!)'*":
!)'*" &!$-0-*"/)!/
1  !(2+,'+7- )* LS2036
./1- !!$ (ms) !&$'
±10 !$

! &)-8$' (LS010000) !* *8-0 D-Script


Trigger Condition: Bit ON [#INTERNAL] LS010000
Execution Expression: clear ([b:[#INTERNAL] LS010000])

   GP-Pro EX 20-47


  &

.  $ , $ D-Script

 !! LS010000


   

" #


  [b:LS010000]   [b:LS010000]


  1   1

  [b:LS010000]   [b:LS010000]


  0   1

 !  ! $# 


$#  %  %' %( 1 & 1 (ON & ON)
0 & 1 (OFF & ON)  #!)*
!

% % '   +'!"    % D-Script 2  %   '    ' 
 0 ,

 !""$ $2 # ( ) %  &


!""$ $2 # if  % %$' %"!" % GP ' $'     $' ' 0

Trigger Condition: Bit ON ([#INTERNAL]LS203800 *1)


Execution Expression: if ([b:[#INTERNAL]LS010000]==1)
{
clear ([b:[#INTERNAL]LS010000])
:
:

*1 %-  GP % *3$ &/*%$' " #02  0

#"  D-Script !' 1*"  1*"7")"  %/2 (  $ %' $2  
#6#0  " '  0 $' $'  #6%'$'      +
 %%  + $0+'' $' '"  , !'+

   GP-Pro EX 20-48


  &

.  $ , $ D-Script

 !! LS203800

 !! LS010000

 !
!!  $' if ( )

[b:LS010000]  + [b:LS010000]  + [b:LS010000]  +


 1  1  0
  !   !    !
($ ) ($ ) ($ )

[b:LS010000]  + [b:LS010000]  +


 0  1
   !   !
($ ) ($ )

   GP-Pro EX 20-49


. 

20.8  <


20.8.1  <+ (D-Script)
'%"% D-Script Global D-Script .4%'+ #2  Extended +'  ID
 %$'  & %' %$' (  

- #  .+


Export ./2&(#+ File Export  $(#6! (.txt)
 & 2)#-0#
Import ./2&(#+ File Import +- $2+) (#6!)
"$ **2!$!*
!)  0-+1%(

  %"&



   GP-Pro EX 20-50


. 

- #  .+


&:640*!,'8 ( 0-+1%( ''*+*''
$+640

'()* +'

&" ,  ,"!# -+


&: if & loop *: '' )$&-'2!  
%"&
& ./8!,' ( [ )   ' [Input Address] 9(
'( 
  
*:+ #(%&-./:+ )*

./ 3 0$2&#
)'+% !'./1- +$
A.1.3 &'.//PLC $ GP #' (!;0& "!!))
( A-5)& A.1.2 &'.//PLC #" $)
(!;0&  ) ( A-3)
 <%0& "!!)
 %!, ! #INTERNAL : ) USR ./1- GP
( 
#MEMLINK : )./$0& "!!)
 <%./$0&  (!0& "!!))
0&./*  !
(PLC1 ==) : )./*  !
#INTERNAL : )./1- GP
 0& "!!)*./$0& 
0&./*  !
: )./*  !
(PLC1 ==)
#INTERNAL : )./1- GP
#MEMLINK : )./$0& "!!)



   GP-Pro EX 20-51


. 

- #  .+


¢ŒÍÊÓ¤ÑÞ
 , &+ .  "  , /   . %0 0   !!1 "/
 0 0 2"#'& Oct (3)
 &41"#( #!! .

:  &" "'5#+
DEC (3,&!)
' 100
  "%! :  &" 0x
Hex (3,&! )
 (  ' 0x100
Oct (3) :  &" 0
' 0100
    "#" #!!  %'& AND (Hex  BCD)
Hex 
0x270F & 0xFF00 /4+: 0x2700
BCD  Hex
9999 & 0xFF00 /4+: 0x9900
!'#!/! " !'*+$  

&  %+   "
%"&

ID  2+  ID


&  &#$$  - ( (*  0 2 65,535
Comment -);'
Language & [ASCII], [Japanese], [Taiwanese], [Chinese] & [Korean]
)!-0640'&# 640 _debug +-!&(
Enable Debug
Function 640 _debug $)
)'+% !'640( +$ 21.7.1 640 Debug ( 21-65)
(&#$$$)- $) )'+% !'640( +$
   & + 20.7  (&#$ ( 20-44)
Extended Script # (&#$
Data Type (+*''+)'  Bin & BCD )' Extended Script
)#!  !& Bin
Bit Length (!!+)' ! 16 Bit & 32 Bit
Sign +/− &0(&./ *$)!' ./2&0#( <%& ( Data Type
 Bin $(


   GP-Pro EX 20-52


. 

- #  .+


Execution Expression 
./2-0#( &)*640  $-0#- # 0!
!-:)*640
)'+% !')*640  $-0# +$ 21.13 )
( 21-98)
<Built-in Functions>
         
 !" #"   $ 
Built-in Function (Instruction) %& [Input] ' ( $)** *"%$
" +  !"

$' $(-640$)"+-0
 & 2-0#

User Define Function ËÁÒÂà˵Ø

 )'% !'640
$)"+-0 +$
20.8.2 )*)- (640$)"+-0
( 20-54)
./2&)$-0#- # 0!
!-:)
*2&)0 * )*
!$-0- #!
)'+% !')$-0# +$
'$$ 21 )*% * ( 21-1)

Tool Box

   GP-Pro EX 20-53


. 

20.8.2  <78 9 &

- #  .+


640$( &640$-0  [Call] 0&640$-0
Call
2+--68 Execution Expression
Create 640- $ [Create]   '0&640$-9(
*#640$#!*! &640$*#  [Edit]   ' [D-Script Function]
Edit
9(
Delete '640$#!*! &640$' *! [Delete]
640$#!*! &640$  [Duplicate]   '9(
Duplicate
%&-./'$)640!0&-
Rename 0&640$#!*!  [Rename]   ' Rename Function 9(

   GP-Pro EX 20-54




20.9 !%
20.9.1 !% ! D-Script/Global D-Script
.    " SIO
 %2 '2 9:&! Send/Receive +' )'2 %2 ' D-Script
 Control ,%  ") '    #' Status  Received Data ,%'  '   
" ' ")% Control   ")% Status  2 " 2  " 
 "#"  D-Scripts (9:&!) %'  #2  #' 
#2 ")  %  0 1' ") )
  3    (( 20-25)
 !'!"+"34& LS #  1 6")9:&! Send/Receive +" $#2 0)"!" (LS20 1*
LS2031  LS2096 1* LS8191)
  [System Settings] - [Script Settings]  +'+"%$' [D-Script/Global D-Script] +" % 13 
LS2032    ,#1  =  ' 9:&! Send, 9:&! Receive, % Control, %
Status $34#% Received Data Size
#2 ")  $#" 34&-  )
 A.1.4.3 &+$ 45 (( A-16)
 !"9:&! Send/Receive "%$' $  % D-Script , 16 %
 '  2  "  %$' $  % , 32 %
 9 9& #'")  '  2048 +%& #'9 9& ")  8192 +%& #?? 4 ER
(  %&%3 ) #?? 4 RS (  %&3%) 1)=  9 9& ")") "  " ' " 80%

.   $+   BCD


 $' +'#  1 ,) BCD '  2    32  
$' ' +"' A 1* F ")  # " !"$' ' 
  32    $' +'!') BCD % 7 ")  &' (LS2032)  $ GP
 =* %+'=' = $ GP  $ GP " #)'9+&
% ' 
[w:[PLC1]D0200]=([w:[PLC1]D0300]<<2)+80
  D300 '  3   %#%+ /" 2 " 0 & , 0x000C /*+'#  1
,) BCD +"  2  
[w:[PLC1]D0200]=[w:[PLC1]D0300]<<2
  D300 '  3   %#%+ /" 2 " 0 & , 0x000C %'%'  % ' 
" % 0x000C ,0 &  2   6+"' $ 2 +'2 "
 32  

   GP-Pro EX 20-55




.   $+#0+"
 $34!">) & ,%  division (/)  remainder (%)  32   " !">) & ,% 
  32    $' +'!' BCD % 8 ")  &' (LS2032)  $ GP  =*
%+'= ' = $ GP  $ GP " #)'9+&

.  $ %+$$ #(,)$#  Assign


 !"%2 '34&$2 # Assign  2 "   ")' !" +"   GP %"' ")%2 '
 34& !%' )' )% ' " ' 
% ' 
[w:[PLC1]D0200]=([w:[PLC1]D0300]+1 ... (1)
[w:[PLC1]D0201]=([w:[PLC1]D0200]+1 ... (2)
"$ $2 # (1) 2  (D0300+1)  D0200 %'"$ $2 # (2) 0 &"$ $2 # (1)
+'+"1)2  D0200   ## 34&/PLC !"    4 !' "  
" 60 &"$ $2 # (1)  LS '  !"0 &  !'% ' " ' 
[w:[#INTERNAL]LS0100]=[w:[PLC1]D0300]+1
[w:[PLC1]D0200]=[w:[#INTERNAL]LS0100]
[w:[PLC1]D0201]=[w:[#INTERNAL]LS0100]+1

.     D-Script 2 +"' %2 '# %2 '!"' $ 2 ' 
 &* & 2 %2 '#)#3#  1!" D-Script +"$ 255 %2 ' %'$!"%2 '
"" #3 ' 2 +"   !"3 4&  ' + 6 2 " %#!"  ' 

. $2 # Convert Address  ) Utility  Project Manager +'#  1%2 '!" D-Script +"
" = D-Script Editor "+%2 ' ' 

.    %$' Connected Device Type  " %'  Save As  ) Project  Project
Manager +'#  1"+%2 ' D-Script !"+" "+%2 ' '  !" D-Script Editor

.   D-Script 0%'  #2  #0  '  !"%2 ' ,2  
2 "# -  2   '  6+"!

.   9:&!* 9:&!* #  1  +"#)#3 9  ( /") " #" 


 /" ' 

. $34#  1  9:&!/"+"+'  9 

. $34#  1#" 9:&!+"+'  254 9:&!

   GP-Pro EX 20-56




.  2   D-Script  =*  & "    ,:
   & + &4 '"% &4 '"/  "1
*116!  Bit 0 Bit 1 Condition Condition Bit 0 Bit 1 Condition Condition
  is not is is not is
Satisfied Satisfied Satisfied Satisfied
!0 !& "  !  ! ⎯ ⎯ "  ! "  ! ⎯ ⎯
!  !&  ! "  ! ⎯ ⎯ "  ! "  ! ⎯ ⎯
   !&  !  ! ⎯ ⎯ "  ! "  ! ⎯ ⎯
    "  ! "  ! "  ! "  ! "  ! "  ! "  ! "  !
 1!21 & ⎯ ⎯ "  !  ! ⎯ ⎯ "  !  !
 1!21 ⎯ ⎯  ! "  ! ⎯ ⎯  ! "  !

' : $)$$*
&&8&
#' : #$)$$*
&&8&

 %%  2   %%      "   


  !" Global D-Script  2  %' ( ' 1*"  ;   = $ GP ' 
 ' +6%  "  GP  +' 2  %' ( ' 1*"   %&
2   !" +  &% $' +"
 %%   )' Global D-Script %%       # @+9 $ GP

ËÁÒÂà赯  " !"3<" #0#%$'  &%# % %"     %
7") +'1)%" 2 "%7 +'1)%"

. 2 $' "%2 '#2   " 42   !"$2 # D-Script   "  
0 D-Scripts "
% ' 
ID 00000
Data Type: Bin, Data Length: 16 Bit, Sign +/−: None
Trigger: Leading bit ([b:M0000])
[w:[PLC1]D0100]=0 // (1)
[w:[#INTERNAL]LS0008]=30// (2) Switches to Base screen No. 30
[w:[PLC1]D0101]=1 // (3)
[w:[PLC1]D0102]=2 // (4)
  !" D-Script " %"   "  0 (3)  (4) "

   GP-Pro EX 20-57




. %$' ")!" D-Script "  %  $ GP "%)' +"  ")"


"*  !" D-Script
.   1,  Global D-Script
  = $ GP +' 2  % #%  " " "   
+'2 %  '  !"  +  &1)%# ' %' 
 Global D-Script 1) 2  !$ '   "  2   (  $ GP
   = $ GP Global D-Script  +'2   ' $' ")" 
%" #6"
 ' +6%   "  %"  + Global D-Script  2  '' ") #6
 2 34&#)#3 Global D-Script $ 255 2 34& '  256 D-Script +'2  
 34& ' ' ") # +'$2 *1*"  *$%$' 2 34& D-Script
"2 " #3 ; # -  2  
 2  Global D-Scripts #)#3#  1!"+"$ 32 9:&!!" )'46  ,* Global D-Script
!'  Global D-Scripts 2 $ 32 +'# Global D-Scripts '

20.9.2 !% ! Extended Script


 %2 '34&%' ( #  1!"+" ;  LS  USR ( ##2 0)"!") ' 
 %2 '!$  D-Scripts  Global D-Scripts 1)   %2 '!$  Extended
Script     %' ( %2 '!$  D-Scripts  Global D-Scripts *+' 5
%2 '!$  Extended Script
 $34#  1  9:&!2  0)"!"#" " D-Script/Global D-Script +" %' $34 " !"%2 '
34& )'34&-  )'9:&! 9:&! 2  +'1)%"    1' ")
(' #" ")#2  GP) #" 9:&!2  0)"!" D-Scripts, Global D-Scripts
 Extended Script  %'   
   9:&!* 9:&!* #  1  +"#)#3 9  ( /")
 $34#  1  9:&!+"+'  254 9:&! (2 9:&!!"9:&! Call +"$ 254)
 Extended Script +'0%' 2 6
 9:&! ;  Extended Script !'  2  #% +'2     " D-Script
 Global D-Script
 )")#  1!"+"$ Bin ") ,) BCD +'#  1!"+"
 9 9& #'")  '  2048 +%& #'9 9& ")  8192 +%&  CTS
1)=  9 9& ")") "  " ' " 80%
 +'#  1 %$+ Extended Script "+" %  %'+#")  %
  !"'
640 Extended SIO  640 Extended SIO 
 ( Extended SIO
D-Script/ Global D-Script Extended Script
 $!# ': $)# #': $)##
Extended Script #': $)## ': $)#

   GP-Pro EX 20-58




  4A& %$' #%


!"#% _ strset ( ) 9:&!( "#'#%+" $ ? > (")
%" # $ ? >#% "#'#?.4& \ # , as [\"]
+'   #?.4& \ %  +"  2 , "!" %$' )#
(_strset (databuf0, 92)
% ' 
"ABC\"DEF" → ABC"DEF
"ABC\DEF" → ABC\DEF
"ABC\\"DEF" → ABC\"DEF
"ABC\\DEF" → ABC\\DEF
. #  %-, & & ") Extended SIO, databuf0, databuf1, databuf2 ,
databuf3
!)) + '!)) + 
'66+ 0 databuf0 1 KB
'66+ 1 databuf1 1 KB
'66+ 2 databuf2 1 KB
'66+ 3 databuf3 1 KB

20.9.3 !% !789 &


 #'$2 ##  1!"+"%%' +%'#$%& !"$2 # ) 21.13   $2 #
(" 21-98)
 #2 !9:&! $34#  1!"%.- . B.%6+"!" #"%" _ ($34#  1
*%"!9:&!+"" % 0#%. ' )
 " !"!%'+ ,!9:&!
and b_call Bcall _bom2hexase break Call
_CF_delete _CF_dir _CF_read _CF_read_csv _CF_rename _CF_write
clear databuf0 databuf1 databuf2 databuf3 _decasc2bin
_dlcopy dsp_arc dsp_corcle dsp_dot dsp_line dsp_rectangle
else endif fall _hexasc2bin if IO_READ
IO_READ_EX IO_READ_WAIT IO_WRITE IO_WRITE_EX loop _memcmp
memcpy _memcpy_EX memring _memsearch memset _memsetEX
_memshift not or return rise rise_expr
set _strcat _strlen _strmid _strset timer
toggle _wait

   GP-Pro EX 20-59




20.9.4 !+#+#&"
 Overflowing Digit
Overflowing Digit *  $2 41): >.
2  $2 4") 16 %+'+"3 $ :
 65535 + 1 = 0 (  Overflowing Digit)
 (65534 ∗ 2) / 2 = 32766 (  Overflowing Digit)
 (65534 / 2) ∗ 2 = 65534 (+'  Overflowing Digit)
 + !+*>?9"!
0 & $2 4 >. * )' '  #' $  C:D/"  +'
 −9 % 5 = − 4
 9 % −5 = 4
  8 %' >
3>  ,0   1): >.
 10 / 3 ∗ 3 = 9
 10 ∗ 3 / 3 = 10
 !+ # +! " BCD
 2  ") BCD 2 "  Overflowing Digit 0 &+'1)%"

   GP-Pro EX 20-60




20.9.5 !& "


"$ #"0 %'+ 5* %$' #$%&+'1)%"
"0 # )'" ' "  $ GP
#"0 1)  %2 ' LS91XX %   #"0  ,% % 
RAAA %  " '  (% '  !'  "0  RAAA130 *     130 +")
 30.4  &   GP (( 30-19)

 , , /& , &+


D-Script Global D-Script Extended Script
(  /& = LS9120) (  /& = LS9110) (  /& = LS9100)
⎯ RAAA130 RAAA140
Global D-Script "% Extended Script "%
#-0 ()! Global D-Scripts $( ()!640$()!
)!+.$)#!$ 32) +.$)#!$ 255)
⎯ RAAA131 ⎯
Global D-Script "%
#-0 ()!./$()! #-0
+.$)#!$ 255)
RAAA120 RAAA132 RAAA141
D-Script "% Global D-Script "% Extended Script "%
(#640 $'.&640 (#640 $'.&640 (#640$'.&640
"%) "%) "%)
RAAA121 RAAA133 RAAA142
D-Script "% Global D-Script "% Extended Script "%
(640(  (640(  (640( 
10 ') 10 ') 10 ')
RAAA122 RAAA134 RAAA143
D-Script "% Global D-Script "% Extended Script "%
(%$-0##-!0() (%$-0##-!0)( (% $-0##-!0()
RAAA123 RAAA135 RAAA144
D-Script "% Global D-Script "% Extended Script "%
(-0640$) SIO (-0640$) SIO (-0640$) SIO
$## (.//PLC) $## (.//PLC) $## (.//PLC)
RAAA124 RAAA136 RAAA145
D-Script "% Global D-script "% Extended D-Script "%

   GP-Pro EX 20-61




   GP-Pro EX 20-62

You might also like