2-to-1 transparent server · 2-to-1 transparent server with the 2-to-1 transparent server, your...
TRANSCRIPT
2-to-1 Transparent Server
With the 2-to-1 Transparent Server, your PanelMaster HMI unit can be a gateway for another computing
device, such as a PC, a PanelMaster HMI unit, or an HMI unit of other brand, to access the same PLC.
See the following diagrams to know the possible applications.
Any kinds of PLC whose communication protocol is of the request-reply type can be supported. Ask your
local representative to check if your PLC is supported. Note that the communication parameters (baud
rate, number of data bits, number of stop bits, and type of parity check) of the computing device and the
communication parameters of the 2-to-1 Transparent Server should be identical.
Filename of 2-to-1 Transparent Server: C01062.mod
Currently supported protocol: PanelMaster ModBus Device/Slave (RTU)
PanelMaster
PV/PL HMI
PLC PC
PanelMaster
PV/PL HMI
PLC PanelMaster
PV/PL HMI
PanelMaster
PV/PL HMI
PLC Other
brand’s HMI
Changing Language
You can select a language to display by storing the language number minus 1 in $S317. For example, to
display language 3, store 2 in $S317.
Displaying the Previously Selected Language
The HMI is able to display the last selected language for the application after power on if the following
conditions exist.
1) The HMI has battery backed RAM.
2) The selection of “Start-up Language” of the “General” properties in the Panel Setup is “Default”.
Controlling the LEDs
1. PV037-LSK and PV057-LSK
These models have 4 LEDs that are software controllable: LED1 ~ LED4. LED1 is
the indicator for ESC key and LED2 is the indicator for ENT key. Therefore only
LED3 and LED4 are user controllable. You can use the following macro command to
control the LEDs.
SYS(2, par, 0)
The par is a word that specifies the desired states of the LEDs you want. Bit 6 of par
specifies the state of LED3. Bit 7 of par specifies the state of LED4. Bit value of 0
represents OFF state and bit value of 1 represents ON state. All other bits of par
should be zero.
[Example]
(1) The command “SYS(2, c0H, 0)” turns both LED3 and LED4 on.
(2) The command “SYS(2, 80H, 0)” turns LED4 on and LED3 off.
2. PL037-LSK and PL057-LSK
These models have 6 LEDs that are software controllable: LED1 ~ LED6. LED5 is
the indicator for ESC key and LED6 is the indicator for ENT key. Therefore only
LED1~LED4 are user controllable. You can use the following macro command to
control the LEDs.
SYS(2, par, 0)
The par is a word that specifies the desired states of the LEDs you want. Bit 0 of par
specifies the state of LED1. Bit 1 of pars specifies the state of LED2. Bit 2 of par
specifies the state of LED3. Bit 3 of par specifies the state of LED4. Bit value of 0
represents OFF state and bit value of 1 represents ON state. All other bits of par
should be zero.
[Example]
(1) The command “SYS(2, fH, 0)” turns all four user controllable LEDs on.
(2) The command “SYS(2, 1H, 0)” turns LED1 on and other three user controllable
LEDs off.
Data Sharer
Purpose
It allows data sharing among PV units on a LAN. The current implementation can
support 16 PV units on a LAN. Each PV can have up to 256 words of data to share.
Working Principle
1) Data sharer is a virtual device. You have to create a link for your panel to connect
with it. To select it, choose “Direct Link (Ethernet)” as the “Link Type” and
choose PanelMaster’s Data Sharer as the “Device/Server”. There is only one thing
you have to decide in the Parameter page, which is Panel Address. The address is
used to identify the shared data.
2) Every PV unit that wants to share the data of other PV units or share its data to
other PV units must have a link to Data Sharer.
3) A PV unit’s Data Sharer is responsible for broadcasting its owner’s shared data on
the LAN. For example, if the panel address of a PV unit is 10 and the link number
of its Data Sharer is 2, the following Macro command will cause the Data Sharer
to broadcast the corresponding data on the LAN.
2\P10.0 = MOV($u300, 30)
4) Data Sharer will receive the broadcasted shared data on the LAN automatically. It
has a block of memory to store the shared data. To access a word, use the
following address, where m is the panel address and n is the word number of that
panel’s shared data.
Pm.n m=1~16; n=0-255
To access a bit use the following address, where b is a hexadecimal number
representing the bit number in that specified word.
Pm.n.b m=1~16; n=0-255; b=0~f
5) The UDP is used for the data communication of Data Sharer on Ethernet. The
Data Sharer supports RS-485 method also.
Default Folder for File I/O
The default folder will be used for a file I/O operation when one of the following two conditions exists:
1) The command issued for the operation does not require the specification of a filename.
2) The command issued for the operation requires a filename and the specified filename contains no path
information.
Specifying Default Directory
There are 4 kinds of default folder that you can select for your application. To specify the default folder,
you need go to the “Custom” page of the “Panel General Setup” dialog box. To go there, select the menu
item “General Setup” in the submenu “Panel” to get the dialog box, then click the “Custom” tab. Another
way to get the dialog box is to double-click the “Panel General Setup” node on the project tree.
On the “Custom” page, you can specify the desired default folder in the “Default Folder for File I/O”
group according to the following rules:
1) If you want the folder of your application file (.pe2 or .pl2 file) to be the default folder, select “Same
as Application File” in the “Option” combo box. For applications with this selection running on HMI
units, because the applications are not stored in any file and under any directory, the root directory of
the USB memory stick will be used as the default folder instead.
2) If you want to use a specific folder that will exist at run-time as the default folder, select
“Pre-assigned” in the “Option” combo box and specify the folder in the “Folder” edit box. Note that
the specified folder must exist at the run-time or the file I/O operations will fail.
3) If your application needs a new default folder every day, select “New Per Day” in the “Option”
combo box and specify the following 3 items:
A) Folder Path: The path for the new folder. The system will create a new default folder
under the specified path every day.
B) Folder Name Format: The format to create a default folder name.
C) <Prefix>: The string to be used as the prefix of the new default folder names. Note that
only ASCII characters are allowed.
Example
Folder Name Format Folder Path <Prefix> Date Default Folder Name
<Prefix>yymmdd C: ABC December 19, 2008 C:\ABC081219
<Prefix>yyyymmdd D:\NEO ABC_ December 19, 2008 D:\NEO\ABC_20081219
<Prefix>yyMMMdd C: XYZ January 10, 2009 C:\XYZ09JAN10
<Prefix>yyyyMMMdd D:\123 XYZ_ January 10, 2009 D:\123\XYZ_2009JAN10
4) If your application needs a new default folder every month, select “New Per Month” in the “Option”
combo box and specify the following 3 items:
A) Folder Path: The path for the new folder. The system will create a new default folder
under the specified path every month.
B) Folder Name Format: The format to create a default folder name.
C) <Prefix>: The string to be used as the prefix of the new default folder names. Note that
only ASCII characters are allowed.
Example
Folder Name Format Folder Path <Prefix> Date Default Folder Name
<Prefix>yymm C: ABC December 19, 2008 C:\ABC0812
<Prefix>yyyymm D:\NEO ABC_ December 19, 2008 D:\NEO\ABC_200812
<Prefix>yyMMM C: XYZ January 10, 2009 C:\XYZ09JAN
<Prefix>yyyyMMM D:\123 XYZ_ January 10, 2009 D:\123\XYZ_2009JAN
Displaying allowable input range for custom keypad
Create an ASCII Character Display with the following settings:
Monitor Address: $S230
Total Characters: 24 (or less)
Font: Any font
Alignment: Any (Center recommended)
Character Set: ASCII code (7 bits)
Code Size: Byte
Embedding Variable in the Appended Text of Alarm Message
1. The appended text can have one embedded variable.
2. Use the following format to specify an embedded variable:
@@ read_address<display_format>
For example, the following embedded variable in the appended text will display the 32-bit floating
point number stored in W300 with the format of 4 total digits and 1 fractional digit.
(Current temperature: @@W300<F4.1> °C)
If the value of W300 is 123.456 when the alarm occurs, the following text will be appended to its
alarm message:
(Current temperature: 123.4 °C)
3. The read_address can be any valid word address.
4. The display_format has the following format:
Dt.f
The D is a one-letter or two-letter code to specify the data type.
The t is a number to specify the total number of digits to be displayed.
The f is a number to specify the total number of fractional digits to be displayed.
The following table shows the rule of specifying the display_format.
Data Type D (Data Type) t (Total Digits) f (Fractional Digits)
16-bit Unsigned Integer U 1~5 t >= f >= 0
16-bit Signed Integer S 1~5 t >= f >= 0
16-bit BCD Integer D 1~4 t >= f >= 0
32-bit Unsigned Integer UD 1~10 t >= f >= 0
32-bit Signed Integer SD 1~10 t >= f >= 0
32-bit BCD Integer DD 1~8 t >= f >= 0
32-bit Floating Point Number F 1~10 t >= f >= 0
5. Note that the embedded variable specified in the appended text of the first language will be used in the
appended text of all other languages no matter what embedded variables are specified in those appended
text.
Feature List of PM Designer V1.2
By Chris Chiang (5/1/2008)
General Enhancements
Item
Description
Where to Set
Status
One touch to activate multiple
overlapped buttons
See document “Activating Multiple Overlapped Buttons by
One Touch” for the limitation of using this feature.
, ”Activating Multiple
Overlapped Buttons by One Touch”.
Check Box: Activate multiple overlapped buttons by one touch;
Page: General; Dialog: Panel General Setup
: ; : ; :
Implemented
Custom password keypad
<Blank>
< >
Group: Password Keypad; Page: Custom; Dialog: Panel General
Setup
: ; : ; :
Implemented
Custom touch unavailability
sign
If this option is selected, the specified sign (picture) instead of
the default sign will be shown on the objects that are unavailable
to the operator.
, ,
( )
Group: Touch Unavailability Sign; Page: Custom; Dialog: Panel
General Setup
: ; : ; :
Implemented
Time and date output format
The text formats of time and date written to files by the HMI are
selectable.
,
.
Group: Time and Date Output Format; Page: Custom; Dialog:
Panel General Setup
: ; : ; :
Implemented
Sub-links When an RS485 communication link has many devices 1. Check Box: Sub-links; Page: General; Dialog: Link Implemented
connected to it, the logical connection of a device on the link
with the HMI is called a sub-link. If you want to identify,
monitor, or control individual sub-links, you need to select this
option first. When the option is selected, the Sub-links page is
available with the Link Properties dialog for you to specify the
details of the current link’s sub-links.
RS485 ,
HMI . , ,
, . ,
, .
Properties
2. Page: Sub-links; Dialog: Link Properties
1. : ; : ; :
2. : ; :
Recording communication
status in operation log
If this option of a link is selected, the communication status of
that link or that link’s sub-links can be recorded in the operation
log. The recordable types of status include: Enabled, Disabled,
Failed, and Recovered.
,
. : , ,
, .
Check Box: Record communication status in operation log; Page:
General; Dialog: Link Properties
: ; : ; :
Implemented
Showing the last scanned data
immediately instead of waiting
for the newly scanned data
while opening a screen to make
the screen opening process
faster
,
This feature is accomplished by the global input buffer that
stores all the past scanned data. For data locations that have
never been scanned before, you can select to display either
blank or zero.
. ,
0.
Radio Button: Last scanned data or blank, Last scanned data or
zero; Page: General; Dialog: Screen Properties
: ; : ; :
,
Implemented
Normal screen operable under
window screen
Note that a normal screen is not operable in any case when there
is a keypad, an alarm message box, or any system screen.
, , ,
.
Check Box: Operable under window screen; Page: General;
Dialog: Screen Properties
: ; : ; :
Implemented
Random bits can be specified in
the Discrete Alarm Block
Note that the performance of monitoring random bits for alarms
is poor. It is recommended to monitor as few random bits as
possible.
. ,
.
Drop List: Type; Dialog: Discrete Alarm Block
: ; :
Implemented
Random bits can be specified in
the Discrete Alarm Block
Note that the performance of monitoring random bits for alarms
is poor. It is recommended to monitor as few random bits as
possible.
. ,
.
Drop List: Type; Dialog: Discrete Alarm Block
: ; :
Implemented
Alarm message can have
appended text and the appended
text can have one embedded
variable.
,
The alarm message displayed in an alarm message box and an
alarm marquee can have appended text. In the appended text,
one embedded variable is allowed
See document “Embedding Variable in the Appended Text of
Alarm Message” for specifying embedded variables in the
appended text.
, .
, ”Embedding
Variable in the Appended Text of Alarm Message”.
<Blank>
< >
Implemented
Alarm acknowledgement
supported
If an alarm is set to display alarm message or alarm screen when
it occurs, that alarm can be configured to require the operator to
Check Box: Require alarm acknowledgement; Dialog: Discrete
Alarm Block, Analog Alarm Block
Implemented
acknowledge its occurrence. Pressing the OK button of an alarm
message box acknowledges the corresponding alarm
automatically. To acknowledge an alarm that displays an alarm
screen, you must press a function button or a screen button that
can perform the alarm acknowledgement; it is not allowed to
close that alarm screen or switch to another screen without
acknowledging that alarm. When an alarm is acknowledged, the
event can be recorded in the alarm history and a designated bit
can be set as a notification of this event.
, .
OK .
,
;
,
. ,
, ON
: , ; :
Saving recipe data in flash
ROM
With this option selected, it is allowed to save the recipe data in
the flash ROM as a backup. The macro command RB2ROM is
provided to save the backup of a recipe block to the flash ROM.
The macro command ROM2RB is used to restore the data of a
recipe block from the flash ROM.
,
. RB2ROM
. ROM2RB
.
Check Box: Need space in flash ROM to save backup; Page:
General; Dialog: Recipe
: ; : ; :
Implemented
Using volatile RAM for recipe
data
RAM
If this option is selected, the regular RAM space instead of the
battery backed RAM space is used to store the recipe data. If
this option as well as the option of “Need space in flash ROM to
save backup” are selected, the HMI always restores the recipe
data from the flash ROM when it starts running the panel
application.
, RAM RAM
. ”
” ,
, .
Check Box: Do not use battery backed RAM; Page: General;
Dialog: Recipe
: ; : ; : RAM
Implemented
Operation logging
The operations that change data directly by the operators’ touch
can be recorded in the operation log. The communication status
of any direct links can be recorded in the operation log.
Dialog: Operation Logging
:
Implemented
Indirect Addressing
See document “Specifying Indirect Address by Using Index
Register” for details.
, ”Specifying Indirect Address by
Using Index Register”.
Already available in
PM V1.1
PM V1.1
Notification of the completion
of recipe read/write operation
<Blank>
< >
Check Box: Notification; Edit Box: Bit; Page: General; Dialog:
Recipe
: ; : ; : ; :
Implemented
Do not run panel application
until the restart synchronization
is done
.
Check Box: Do not run panel application until the restart
synchronization is done; Dialog: Clock
: ; :
Implemented
New Objects
Object
Description
Status
Scale
<Blank>
< >
Implemented
Scroll Bar
The scroll bars can be used with the following object types: Historic Data Display, Historic Message Display, Historic Trend Display,
Operation Log Display, Alarm Display, Recipe Table, and Sub-link Table.
Implemented
Page Selector
A page selector has a horizontal array of buttons and a page display area. Each button must be assigned a window screen as a
corresponding page. At run-time, a page selector shows only one page at a time within its page display area and you can select a
desired page to view/operate by pressing the corresponding button. One screen can have multiple page selectors.
. . ,
. . .
Implemented
Advanced Numeric Display
In addition to the features that the Numeric Entry and Numeric Display provide, this powerful object offers the following five extra
features for advanced applications:
1. It can display the result of an arithmetic expression (Display Expression).
2. It can display the value calculated in a macro (Display Macro).
3. It can write the result of an arithmetic expression (Output Expression) to a word device. The value entered by the operator can be
the operand in the arithmetic expression.
4. It can write the value calculated in a macro (Output Macro) to a word device. The value entered by the operator can join the
calculation in the macro.
5. It supports up to 10 constant value ranges.
, :
Implemented
1. ( ) .
2. ( )
3. ( ) .
4. ( ) ,
5.
Operation Log Display
<Blank>
< >
Implemented
Recipe Table
This object allows the operator to view all the data of a recipe block or just the data of the currently selected recipe. It is an option to
allow the operator to modify the recipe data.
Implemented
Sub-link Table
With the Sub-link table, it is allowed to enable and disable the communication of a sub-link at any time, Disabling and enabling the
display of communication error message for a sub-link is also possible.
Implemented
Object General Enhancements
Item
Description
Applicable Object
Status
Bitmap Shape
It is allowed to select a picture or a picture group instead of a built-in
frame as the shape of an object.
.
Bit Button, Toggle Switch, Screen Button, Function Button,
Word Button, Multi-state Switch, Radio Buttons, Keypad
Button, Step Button, Bit Lamp, Multi-state Lamp
Implemented
Highlight of pressed button
It is allowed to select how a button is highlighted when it is touched.
? ,
Bit Button, Toggle Switch, Screen Button, Function Button,
Word Button, Multi-state Switch, Radio Buttons, Keypad
Button, Step Button
Implemented
Any Font
Besides the pre-selected fonts in the font templates, it is allowed to
select any available Windows font with any attributes as well.
Bit Button, Toggle Switch, Screen Button, Function Button,
Word Button, Multi-state Switch, Radio Buttons, Keypad
Button, Step Button, Numeric Entry, Numeric Display, ASCII
Character Entry, Bit Lamp, Multi-state Lamp, Message Display,
Time Display, Date Display, Day-of-week Display, Alarm
Display, Historic Data Display, Historic Message Display,
Recipe Selector, Static Text
Implemented
Show Unavailability Sign
It is allowed to show/hide the touch unavailability sign on an object.
.
Bit Button, Toggle Switch, Screen Button, Function Button,
Slide Switch, Word Button, Multi-state Switch, Radio Buttons,
Step Button, Numeric Entry, ASCII Character Entry, ASCII
Character Display, Recipe Selector
Implemented
Timeout processing
With this option selected, if the operator does not complete the entry of
a new value within the specified timeout time, the HMI will close the
keypad and cancel the operation.
, ,
.
Numeric Entry, ASCII Character Entry Implemented
Operation Logging
It is allowed to select this option for an object and specify the text to be
recorded in the operation log.
.
Bit Button, Toggle Switch, Screen Button, Function Button,
Slide Switch, Word Button, Multi-state Switch, Radio Buttons,
Step Button, Numeric Entry, ASCII Character Entry, Recipe
Selector
Implemented
Object Specific Enhancements
Object Item Description Status
Round Rectangle
<Blank>
< >
Implemented
Rectangle
Clipped Rectangle
<Blank>
< >
Implemented
Pulse output supported
It is allowed to select OFF pulse or ON pulse.
.
Implemented
Bit Button
Operation on a bit of a word and a bit of a double-word is supported
<Blank>
< >
Implemented
Screen Button
Alarm acknowledgement supported
<Blank>
< >
Implemented
New functions: Acknowledge Alarm, Copy Logged Operations to File,
Clear Operation Log, Save Recipe Data to Flash ROM, Restore Recipe
data from Flash ROM, Select File
: , , ,
, ,
<Blank>
< >
Implemented
Function Button
Filename selectable supported for functions that need a filename
<Blank>
< >
Implemented
Slide Switch
Current value display supported
<Blank>
< >
Implemented
Radio Buttons
Custom state values supported
<Blank>
< >
Implemented
Keypad Button
Macro supported
<Blank>
< >
Implemented
Scroll Button
Visibility control supported
<Blank>
< >
Implemented
Step Button
Custom state value supported
<Blank>
< >
Implemented
Numeric Entry
“Password” display type supported
” ”
The display type “Password” is only available for 32-bit
unsigned integers. Asterisks will be displayed instead of the real
number if this type is selected.
32 ” ” . ,
Implemented
ASCII Character Entry
ASCII
Appending a null character to the input supported
<Blank>
< >
Implemented
Picture Display
Object group supported
The object can display a group of objects as a picture.
Furthermore, the member of the object group is still able to
update its display dynamically.
. ,
.
Implemented
Object group supported
The object can display a group of objects as a picture.
Furthermore, the member of the object group is still able to
update its display dynamically. With this feature, for example,
an animated graphic can have a numeric display and a button
moving with the picture.
. ,
. , ,
.
Implemented
Animated Graphic
The path type “Dynamically Selectable Predefined Positions” supported
” ”
This path type allows you to define a sequence of positions on
the screen for the animated graphic. If there are N predefined
positions, the first position is the position of No. 0 and the last
position is position of No. N-1. At run-time, the value of the
Implemented
movement controlling word decides the desired position number
and the object moves to the specified position accordingly.
.
N , 0 N-1.
, .
.
Bar Graph
Percentage display supported
<Blank>
< >
Implemented
Pie Graph
Percentage display supported
<Blank>
< >
Implemented
Displaying the messages for a single alarm block supported
<Blank>
< >
Implemented
Dynamic sort supported
The display contents can be sorted in many different ways at
run-time. This makes the object an effective tool to get the alarm
information.
Implemented
Displaying records of alarm acknowledgement supported
<Blank>
< >
Implemented
Displaying records of alarm clearance and alarm acknowledgement
optional
<Blank>
< >
Alarm Display
Abbreviation of alarm status and colors for the alarm records of different
status type selectable
<Blank>
< >
Implemented
Historic Trend Display
The viewable time range can be specified in the unit of day. Therefore the
time range can be days, months, and even years.
<Blank>
< >
Implemented
. , ,
.
Recipe Selector
Recipe list sorted by recipe name supported
If the “Sort by name” option is selected, the recipe list is sorted
by recipe name; otherwise, the recipe list is sorted by recipe
number.
” ” , ;
, .
Implemented
Meter
The meters can occupy less space.
.
The meter style PM_906 and PM_908 allow the needle base to
be outside of the meter. Therefore, these kinds of meters can
have wider view than other styles. Relatively speaking, the two
styles are more space saving.
PM_906 PM_908 ,
.
.
Already available in
PM V1.1.37
PM V1.1.37
New Macro Command
Command
Description
Status
RB2ROM, ROM2RB Implemented
OPEN_FILE, READ_FILE,
WRITE_FILE, CLOSE_FILE,
DELETE_FILE,
With these commands, you can open, read, write, close, delete, and rename the FAT32 files. You can also get the information of a
USB memory stick. See document “Using Macro Commands to Do File IO” for details.
, ”Using Macro
Implemented
RENAME_FILE,
GET_VOL_INFO
Commands to Do File IO”.
KB_MCR Command Format: KB_MCR(P1)
Parameter P1: Internal word address
This command is to be used in the macro of a keypad button. It cancels the keypad operation by setting the value of P1 to 1.
Implemented
KPD_TEXT Command Format: KPD_TEXT(P1)
Parameter P1: Internal word address where an ASCII character string is stored
This command initializes the keypad display with an ASCII character string stored in P1.
Implemented
The following commands support
bit operation: |(OR), &(AND),
and ^(EXOR)
|( ),
&( ), ^( )
<Blank>
< >
Under development
Arithmetic expression supported
This enhancement makes the programming easier and makes the program more readable. Under development
Using external address directly for
the parameters supported for most
macro commands
This enhancement can shorten the program and save the programming time. Implemented
New HMI Advanced Function
Item Description Status
Support the mouse
<Blank>
< >
Implemented
Virtual FTP server
The virtual FTP server provides the services of download and upload of all kinds of application data through the internet. Under development
Remote HMI cloning
If an HMI unit has the clone driver installed, a remote HMI unit is allowed to clone that HMI unit through the internet. The cloning
here we means:
1. The remote HMI can display what the cloned HMI unit is displaying.
2. The remote HMI unit can bypass the cloned HMI unit to operate a machine directly as if the machine is operated by the cloned
HMI unit.
, . :
1.
2. , , .
Under development
New Design Tool and Method
Item
Description
Status
Auto Text Resizing
When the Auto Text Resizing is enabled, the font size of the object under resizing is automatically adjusted according to the size of
the object.
Implemented
Auto Screen Contents Resizing
Implemented
Object List It lists all the objects contained in the current screen. The information shown for an object includes: object type, object ID, used I/O Implemented
addresses, and note. You can get the properties dialog of a desired object from the list. You can also edit I/O addresses and notes
directly on the list.
I/O List
It lists all the I/O addresses used in the current panel application. The information shown for an I/O point includes: address,
purpose, and user. You can get the properties dialog of a user from the list. You can also edit I/O addresses directly on the list.
Implemented
Text Database
Under development
Screen Overview
The screen overview is both a viewing tool and a design tool. It displays all the screens of the current panel application in graphic
form and shows the inter-relationship among screens by arrows. An arrow starting from screen A and ending at screen B means
there is a screen button that can open screen B or switch from screen A to screen B. The starting point of an arrow shows where the
corresponding screen button locates. You are allowed to edit the arrows and move the screens to make the screen overview more
readable. You can also add screens and arrows to do the top-down design.
Under development
Link Overview
The link overview is both a viewing tool and a design tool. It displays all the communication links of the current panel application
in graphic form. You are allowed to edit the graphic to make the link overview more readable. You can also add/delete/modify the
links to do the top-down design.
Under development
Object Group
It is allowed to save a group of objects in the object library. A group of objects that was saved in the object library is called an
object group.
Implemented
.
Picture Group
It is allowed to create picture groups in the picture database. A picture group can have many pictures added to it and each picture
corresponds to a specific state of the picture group.
.
Implemented
Auto switching of opaque mode
and semi-transparent mode of
object properties dialogs
<Blank>
< >
Implemented
Allowing to set common
attributes for multiple selected
states in the Text page of an object
properties dialog
<Blank>
< >
Implemented
Allowing to set common
attributes for multiple selected
alarms in the Discrete Alarm
Block dialog
<Blank>
< >
Under development
Allowing to set common
attributes for multiple selected
alarms in the Analog Alarm Block
dialog
<Blank>
< >
Under development
Allowing to flip/rotate pictures in
the object properties dialog
It is allowed to adjust a picture view while configuring an object.
.
Implemented
This software tool allows you to view/edit the recipe data. Under development
General Device(Com)
Bit Device CTS_STS CTS CTS 1:
0:
Bit Device EN_HS
Bit Device FLUSH
1
Bit Device RESET UART
Bit Device RTS (SET)RTS
Word Device RX
Word Device RX_CNT
Word Device RX_STS 1: , 2: , <0:
Word Device RX_W ,
Word Device RXB_CNT
Word Device TO_TIME
Word Device TX
Word Device TX_STS 1: , 2: ,<0:
Word Device TX_W
,
#define PROCESSING 0
#define SUCCESS 1
#define TIMEOUT 2
#define OverRunErr 0x8001
#define BreakErr 0x8002
#define ParityErr 0x8003
#define FramingErr 0x8004
CTS_STS ,1 , 0
, EN_HS 1 , ,
, . .
EN_HS 1 , CTS_STS ,
, .
FLUSH 1 , 0 . 0.
RESET 1 UART , 0
. 0.
RTS 1, ,0 .
RX N .
N , N .RX_CNT N,RXB_CNT=RXB_CNT-N.
RXB_CNT ,RX_CNT = RXB_CNT,RXB_CNT=0.
. ,RX_STS=1 ,RX_STS<0 .
RX_CNT . .
RX_STS . 1: ,2: ,<0: . .
RX_W N .
N , N .RX_CNT N,RXB_CNT=RXB_CNT-N,
RX_STS=1 . . RXB_CNT N,
RXB_CNT ,RX_CNT = RXB_CNT,RXB_CNT=0,
RX_STS<0 , RX_STS=2 . .
RXB_CNT . .
TO_TIME , 100MS.
TX . . . . EN_HS
1, , CTS_STS=0. . EN_HS 1,
RTS=1, RTS=0. .
TX_STS=2 . . TX_STS=1 .
TX_STS . 1: ,=2 ,=0XFF .
.
TX_W . . . . EN_HS
1, , CTS_STS=0. . EN_HS 1,
RTS=1, RTS=0. .
TX_STS=2 . . . . ,
TX_STS=1.
LDF File
The LDF files allow you to save logged data in files and view the data later. Hence the size of battery
backed RAM or the buffer sizes of the data loggers will not limit the size of historical data you want to
collect.
There are three ways to write the logged data of a data logger to an LDF file:
1) You can use a function button to perform “Copy Logged Data To .LDF File”. The button writes all the
logged data of the specified data logged to an LDF file.
2) You can use the Command Block to request this operation.
3) You can configure a data logger to write its collected data to an LDF file automatically with preset
time interval.
To view the logged data of an LDF file, you need to load the data of that LDF file into a data logger first.
A data logger is able to receive the data from an LDF file only when:
1) The definitions of the data items of the LDF file and the data logger are identical, and
2) The number of samples of the LDF file is not greater than the number of samples of the data logger.
The viewing objects for an LDF file should be configured for the data logger that is able to receive the
data from that LDF file.
Line Charts Support Cursor
The cursor of the line chart is a vertical line segment. The user can move the cursor
horizontally within a line chart to the desired data point(s). The line chart can display
the selected data and write the selected data to the Cursor Data Receiving Buffer.
There are two methods you can choose to display the cursor selected data.
1) Original – According to the specified data type of the line chart, the raw data value
is displayed. In this way, only 32-bit floating point data will have a decimal point.
2) Scaled – The corresponding Y-axis’ tick mark value is displayed
The memory space that receives a copy of the cursor selected data is called Cursor
Data Receiving Buffer. It must be a piece of the internal memory. There are two types
of data arrangement in the Cursor Data Receiving Buffer. One is for the 16-bit data
type and another is for the 32-bit data type. See the following tables for details.
Data arrangement in Cursor Data Receiving Buffer for 16-bit data
Word No. Content
0 The sequence number of the cursor selected data in the data set
1 The selected datum of curve #1
2 The selected datum of curve #2
… …
N The selected datum of curve #N
Data arrangement in Cursor Data Receiving Buffer for 32-bit data
Word No. Content
0~1 The sequence number of the cursor selected data in the data set
2~3 The selected datum of curve #1
4~5 The selected datum of curve #2
… …
2*N~2*N+1 The selected datum of curve #N
, ,
. ,
.
:
1) – , , ,
. , , 32 ,
.
2) - Y .
. .
, 16 32 .
.
16
0
1
2
…
N
32
0~1
2~3
4~5
…
2*N~2*N+1
List of To-be-released Document
2-to-1 Transparent Server.doc
BarGraphMarker_TC.doc
Changing Language.doc
Controlling the LEDs.doc
Data Sharer.doc
Default Directory for File IO.doc
Displaying allowable input range for custom keypad.doc
DynamicRange_TC.doc
Embedding variable in the appended text of alarm message.doc
Feature List of PM Designer V1.2.doc
General Device.doc
HistoricSingleRecordLineChart_TC.doc
LDF File.doc
Line Charts Support Cursor.doc
One touch to activate multiple overlapped buttons.doc
Printing Screen.doc
Specifying Indirect Address by Using Index Register.doc
System Memory (PM V1.2).doc
Using Command Block to Save Data.doc
Using Macro Command to Disable Communication Link.doc
Using Macro Command to Save Data.doc
Using Macro Commands to Create a String.doc
Using Macro Commands to Do File IO.doc
New Features of Communication Drivers
The purpose of this document has two folds:
1) The driver developers are able to develop and test the new communication drivers
with the new features for the PM V1.2.
2) The application engineers can explain the new features to the customers and make
demo projects for the new features.
New Features
1) Supports the sub-links. An RS485 link can have many slave devices connected to
it. The HMI uses the same communication protocol to talk with all those slave
devices. The connection between the HMI and each of the slave devices is a
sub-link. With the Sub-link table, the operator can enable or disable a sub-link at
any time.
2) A link can be disabled or enabled dynamically. The macro command EN_LINK is
designed for this purpose. This command can also be used for sub-links.
3) Supports the logging of communication status. If this feature of a link is selected,
the communication status of that link or that link’s sub-links can be recorded in
the operation log. The recordable types of status include: Enabled, Disabled,
Failed, and Recovered. The operation log display can show the logged
communication status.
4) Supports reliable termination of the DLL drivers. This is extremely important for
the PanelExpress. The DLL drivers should be successfully terminated without
causing any system crash under any conditions. The current DLL drivers have
problems of termination if they are in some abnormal conditions such as COM
port initialization failure, connection failure, and no PLC response error.
One important thing is that the driver designed or modified for PM V1.2 should still
work well with PM V1.1.
Using Macro Command to Enable/Disable Communication Link
The macro command EN_LINK can enable or disable a communication link
dynamically. The format and the parameters of this command are shown below.
EN_LINK(p1, p2, p3)
p1: The link number of the communication link to be enabled or disabled.
p2: The node address of the sub-link to be enabled or disabled. If the specified link
has no sub-link, this parameter is ignored. If the specified link has sub-links and you
want to enable or disable the link itself, this parameter should be 0.
p3: Specifies whether to enable or disable the specified link/sub-link. If this parameter
is 0, the link/sub-link is disabled. If the parameter is 1, the link/sub-link is enabled.
Activating Multiple Overlapped Buttons by One Touch
By Chris Chiang (9/24/2008)
To enable the feature of activating multiple overlapped buttons by one touch, open the
Panel General Setup dialog box and check the option of “Activate multiple
overlapped buttons by one touch” on the General page. With this feature, the
overlapped underlying buttons will be activated one by one from top to bottom when
the top-most button is pressed. The following are the constraints of applying this
feature.
1. The types of buttons that support this feature include: Bit Button, Toggle Switch,
Screen Button, Function Button, Word Button, Multi-state Switch, and Keypad
Button.
2. The first button, i.e. the top-most button, can only be a bit button, a toggle switch,
a word button, a multi-state switch, or a keypad button. The button can not have
the optional property of Minimum Hold Time or Operator Confirmation. If the
button is a bit button, a toggle switch, or a keypad button, it can not have any
macro. If the button is a word button, it can not be configured for Enter Value or
Enter Password. If the button is a multi-state switch, it can not be configured as a
List or Drop-down List.
3. The underlying buttons that have the optional property of Minimum Hold Time or
Operator Confirmation will not be activated.
4. An underlying bit button that is configured for Momentary ON or Momentary
OFF will not be activated. However if that bit button is the second button and the
first button is a keypad button, it can be activated. An underlying bit button that
has any macro will not be activated.
5. An underlying toggle switch that has any macro will not be activated.
6. An underlying multi-state switch that is configured as a List or Drop-down List
will not be activated.
7. A function button can only be the last button, i.e. the bottom-most button. All the
buttons that are under a function button will not be activated.
8. A screen button can only be the last button. All the buttons that are under a screen
button will not be activated.
9. A word button that is configured for Enter Value or Enter Password can only be
the last button. All the buttons that are under such button will not be activated.
10. The maximal number of buttons that can be indirectly activated by one touch is
10.
Using Command Block to Print Screen
Settings of Command Bit and Parameters
Operation Command Bit #8 Parameter One Register
Print the Top Screen 1 (No parameter one register)
Print the Top Screen 1 0
Print the Specified Screen
(Note)
1 Number of the screen
Note: The operation is not supported by PL035/037/057/058.
PV/PL Models
Settings of Command Bit and Parameters
Operation Command
Bit #15
Parameter
One Register
Parameter
Two Register
Filename Format
Print Screen to File
(in 256-color BMP
format )
1 6 Number of the
screen
S<ID>_<Date>_<Time>.bmp
Print Screen to File
(in 64K-color BMP
format)
1 7 Number of the
screen
S<ID>_<Date>_<Time>.bmp
PanelExpress
Settings of Command Bit and Parameters
Operation Command
Bit #15
Parameter
One Register
Parameter
Two Register
Filename Format
Print Screen to File
(in BMP format;
the color resolution
follows the setting
of the PC)
1 6 Number of the
screen
S<ID>_<Date>_<Time>.bmp
Print Screen to File
(in JPG format)
1 7 Number of the
screen
S<ID>_<Date>_<Time>.jpg
Note:
<ID>: Number of the screen
<Date>: date when saving the data; format is YYMMDD
<Time>: time when saving the data; format is hhmmss
Remote Downloading Example
1. Find a router just like this
or a switch like this.
2. Connect a cable from the HMI to this device.
3. Log in the router
Activate your web browser and type in the IP address of the DI-604 into the Address (for IE) field and press “Enter.” The default IP address of the DI-604 is 192.168.10.1 For example: http://192.168.10.1
After the connection is established, the logon screen will pop up. To log in as an administrator, enter the username of “admin” and the password (there are no default password, leave it blank). Click the OK button. If the password is correct, the web-management interface will appear.
If either User Name or Password is input incorrectly, this dialog will appear again.
Please double check the User Name and Password or ask somebody to get the
correct User Name and Password.
4. Check the starting IP address and the ending IP address.
Move mouse to DHCP button on the left side, and press it.
Here are “Starting IP Address” and “Ending IP Address”, They are from
192.168.10.100 to 192.168.10.199.
5. Confirm your new IP address.
Choose an IP address which is not in the range of Starting end Ending IP Address,
for example, 192.168.10.84
On any computer on the network, move mouse to
“Start�programs�accessories�command prompt
Key in “ping 192.168.10.84”
If “Destination host unreachable” appears, this IP address can be used. Otherwise,
choose another IP address and repeat these steps.
6. Set IP Address on the HMI (BIOS)
Turn off the HMI. Set DIP switch 1 and 2 off. Leave all others on. Turn on the
power again and the HMI enters in BIOS mode.
Setting�Ethernet
Use a confirmed IP address. Here is 192.168.10.84
Set “IP Address” to 192.168.10.84
Set “SUB Address” to 255.255.255.0
Press “Save” and “Quit”
7. Set IP Address on the HMI (OSAP)
Turn off the HMI. Set switch 1 off, leave all others on. Turn on the HMI again.
Find “General” or “Network” Button and press it. Set “IP Address” to
192.168.10.84. Press “OK” to save the setting.
8. Again, go back to router set page. Press “Advance” Button on the top row and
press “Virtual Server” on the left column.
The DI-604 can be configured as a virtual server so that remote users accessing
Web or FTP services via the public IP address can be automatically redirected to
local servers in the LAN network.
Name: The name referencing the virtual service.
Private IP: The server computer in the LAN network that will be providing the
virtual services.
Private Port: The port number of the service used by the Private IP computer.
Protocol Type: The protocol used for the virtual service.
Public Port: The port number on the WAN side that will be used to access the
virtual service.
Schedule: The schedule of time when the virtual service will be enabled.
The schedule may be set to Always, which will allow the particular service to
always be enabled. If it is set to Time, select the time frame for the service to be
enabled. If the system time is outside of the scheduled time, the service will be
disabled.
After finishing set, press ”Apply” button on the bottom to save the new settings.
Name: Cermate Download
Private IP: 192.168.10.84
Protocol Type: TCP
Private Port: 3721
Public Port: 3721
Schedule: always
Name: Cermate FTP
Private IP: 192.168.10.84
Protocol Type: TCP
Private Port: 21
Public Port: 21
Schedule: always
9. Get the external IP Address.
This is the router’s working status. Pay a special attention to WAN area. Write
down the IP Address. This is an Internet address which every one can visit it.
In this example, it is 10.80.1.105.
10. Test this IP Address.
Run PanelMaster. Go to Panel�Send Data to Panel�Ethernet�IP address. Enter
the IP address which you got from router’s status. The example is 10.80.1.105. And press
the “Start” button to start downloading.
11. Release this IP address to any one who wants to use remote downloading function.
Basically, this is a dynamic IP address. It is going to keep same in a few days, even
a few months. But it will be changed at any time. So please check it every time when
download is needed.
Scatter Chart with Dynamic Range
Dynamic range parameters for 16-bit data
Word No. Parameter
0~1 Min. of X Axis’ scale mark; 32-bit signed binary number
2~3 Max. of X Axis’ scale mark; 32-bit signed binary number
4~5 Min. of Y Axis’ scale mark; 32-bit signed binary number
6~7 Max. of Y Axis’ scale mark; 32-bit signed binary number
8 X Min. of pen #1; 16-bit signed binary number, 16-bit unsigned binary number, or
16-bit floating point number
9 X Max. of pen #1; (same as above)
10 Y Min. of pen #1; (same as above)
11 Y Min. of pen #1; (same as above)
12 X Min. of pen #2; (same as above)
13 X Max. of pen #2; (same as above)
14 Y Min. of pen #2; (same as above)
15 Y Min. of pen #2; (same as above)
… …
36 X Min. of pen #8; (same as above)
37 X Max. of pen #8; (same as above)
38 Y Min. of pen #8; (same as above)
39 Y Min. of pen #8; (same as above)
Dynamic range parameters for 32-bit data
Word No. Parameter
0~1 Min. of X Axis’ scale mark; 32-bit signed binary number
2~3 Max. of X Axis’ scale mark; 32-bit signed binary number
4~5 Min. of Y Axis’ scale mark; 32-bit signed binary number
6~7 Max. of Y Axis’ scale mark; 32-bit signed binary number
8~9 X Min. of pen #1; 32-bit signed binary number, 32-bit unsigned binary number, or
32-bit floating point number
10~11 X Max. of pen #1; (same as above)
12~13 Y Min. of pen #1; (same as above)
14~15 Y Min. of pen #1; (same as above)
16~17 X Min. of pen #2; (same as above)
18~19 X Max. of pen #2; (same as above)
20~21 Y Min. of pen #2; (same as above)
22~23 Y Min. of pen #2; (same as above)
… …
64~65 X Min. of pen #8; (same as above)
66~67 X Max. of pen #8; (same as above)
68~69 Y Min. of pen #8; (same as above)
70~71 Y Min. of pen #8; (same as above)
Specifying Indirect Address by Using Index Register
By Chris Chiang (4/8/2008)
All of the PV models provide the index registers ($I) to support the indirect addressing. The index
registers are battery backed if the PV model has battery backed memory. The index registers is cleared to
zero by the operating system only when the panel application is updated. With the support of indirect
addressing, an object or macro can be designed to access different sets of data at different time.
Example
1) The word address W[$I30] is equivalent to W2000 when the value of $I30 is 2000.
2) The word address $U[$I0+123] is equivalent to $U223 when the value of $I0 is 100.
3) The bit address $U[$I2].a is equivalent to $U0.a when the value of $I2 is 0.
4) The word address [$I2]:W100 is equivalent to 3:W100 when the value of $I2 is 3.
5) The bit address [$I0]:W[$I1+10].f is equivalent to 5:W20.f when the values of $I0 and $I1 are 5 and
10 respectively.
Note to PM users
1) It is the user’s responsibility to make sure that the values in the index registers will result in valid
addresses at run-time. PanelMaster has no way to check the validity of the using of index registers.
2) The offset values must be a positive number and the maximum offset value is 4095.
3) Only $I0~$I15 can be used for the node address (PLC address) and no offset value is allowed.
4) Make sure the PLC driver you are going to use supports the indirect addressing.
Note to PV driver developers
See the following sample code to know how to calculate the real address of an I/O command.
struct IoCmnd_PV *pCmnd;
struct IoCmndHdr_PV *hdr = pCmnd->hdr;
DWORD addr;
…
addr = hdr->addr;
if (addr & 0x80000000) {// [31]: 1 - Indirect address
// [30..16]: index register no.
// [15..0]: offset
addr = *(linkPar->pIndxReg + ((addr & 0x7fff0000) >> 16)) + (addr & 0x0000ffff);
}
System Memory (PM V1.2)
The following table lists the system maintained data and information in the system memory of the
PanelMaster that may be useful for your application. Note that in any case do not modify the system
memory for any purpose or the system may malfunction or crash.
Address Length Content
$S0~$S25 26 Keypad input buffer for keypads
$S0: Command code for keypad display
$S1~$S24: Null terminated ASCII character string up to 48 characters
$S42 1 The second and minute of the current time in BCD format
Bit 0~7: Second (0x00~0x59)
Bit 8~15: Minute (0x00~0x59)
$S43 1 The hour of the current time in BCD format and the RTC adjustment
parameter
Bit 0~7: Hour (0x00~0x23)
Bit 8~15: RTC adjustment value
$S44 1 The day and month of the current date in BCD format
Bit 0~7: Day (0x01~0x31)
Bit 8~15: Month (0x01~0x12)
$S45 1 The year and the day-of-week of the current date in BCD format
Bit 0~7: Year (0x00~0x99)
Bit 8~15: Day of week (0x00~0x06); 0 represents Sunday
$S46 1 The second of the current time in binary format (0~59)
$S47 1 The minute of the current time in binary format (0~59)
$S48 1 The hour of the current time in binary format (0~23)
$S49 1 The one tenth of the second of the current time in binary format (0~9)
9 represents 0.9 second
$S50 1 The day of the current date in binary format (0~30)
0 represents the first day of a month
$S51 1 The month of the current date in binary format (0~11)
0 represents January
$S52 1 The year of the current date in binary format (0~99)
$S53 1 The day of week of the current date in binary format (0~6)
0 represents Sunday
$S219 1 Current user level (0~9); 9 indicates that the user logged in with the developer
password
$S230~$S241 12 The ASCII character string up to 24 characters to show the allowable input
range for numeric keypads
$S297 1 The lowest user level that can be accepted by the current password keypad.
When the value is 0, any user level is acceptable. When the value is 9, only the
developer password is acceptable.
$S300~$S301 2 500ms timer
$S302~$S303 2 1 second timer
$S304 1 20 Hz sine wave (-1000 ~ 1000)
$S305 1 20 Hz cosine wave (-1000 ~ 1000)
$S306 1 20 Hz triangle wave (0~1000)
$S307 1 System signals
$S307.0: always 0 when ready
$S307.1: always 1 when ready
$S315 1 System status
$S315.0: 1 indicates that the data in battery backed RAM is good
$S317 1 Current language number (0~9); 0 represents language #1
$S654 1 Link enabled bits for Link 1~16
$S654.0 is for Link 1; 0: Disabled; 1: Enabled
$S654.1 1 is for Link 2;
…
$S654.f is for Link 16
$S662~$S677 32 Communication status words for Link 1~16
$S662 is for Link 1
$S663 is for Link 2
…
$S677 is for Link 16
Communication Status
Value Meaning
0 OK
1 Overrun error
2 Break error
3 Parity error
4 Framing error
5 No response
6 Unrecognized response
7 Timeout
8 Inactive CTS
9 Checksum error
10 Command rejected
11 Invalid address
12 Invalid range
13 Invalid request
14 Device busy
15 Unknown error
16 Link disabled
17 Initialization failure
18 Failed to send data
19 Failed to receive data
20 Failed to open connection
21 Connection not ready
22 Invalid sub-link
23 Invalid COM port
24 Error
255 Uncertain
$S838 1 The ID of the current recipe block (0~15)
$S839~$S854 16 The current recipe numbers of recipe block 0~15
$S839 is for recipe block 0
$S840 is for recipe block 1
…
$S854 is for recipe block 15
Using Command Block to Save Data
1. Saving Data to File with Default Filename
Settings of Command Bit and Parameters
Operation Command Bit #15
(Execute General Command)
Parameter One Reg.
(Operation Code)
Parameter Two Reg.
(Data ID)
Filename Format
(Default Filename)
Save Logged Data
(in TXT format)
1 1 ID of the data logger (0~15) DL<ID>_<Date>_<Time>.txt
Save Logged Alarms 1 2 Not required AL_<Date>_<Time>.txt
Save Alarm Counts 1 3 Not required AC_<Date>_<Time>.txt
Save Recipe Data
(in TXT format)
1 4 ID of the recipe block (0~15) RB<ID>.txt
Save Recipe Data
(in DAT format)
1 5 ID of the recipe block (0~15) RB<ID>.dat
Print Screen to File
(in 256 colors)
1 6 Number of the screen S<ID>_<Date>_<Time>.bmp
Print Screen to File
(in 64K colors)
1 7 Number of the screen S<ID>_<Date>_<Time>.bmp
Save Logged Operations 1 9 Not required OL_<Date>_<Time>.txt
Save Logged Data
(in LDF format)
1 10 ID of the data logger (0~15) DL<ID>_<Date>_<Time>.ldf
Take Picture
(in BMP format)
1 12 ID of the USB camera (0~3) CAM<ID>_<Date>_<Time>.bmp
Take Picture
(in JPG format)
1 13 ID of the USB camera (0~3) CAM<ID>_<Date>_<Time>.jpg
Note:
<ID>: ID of the data logger, ID of the recipe block, ID of the USB camera, or number of the screen
<Date>: date when saving the data; format is YYMMDD
<Time>: time when saving the data; format is hhmmss
2. Saving Data to File with Specified Filename
Settings of Command Bit and Parameters
Operation Command Bit #15
(Execute General Command)
Parameter One Reg.
(Operation Code)
Parameter Two Reg.
(Data ID)
Parameter Three Reg.
(Specified Filename)
Save Logged Data
(in TXT format)
1 31 ID of the data logger (0~15) The starting Address of the internal memory $U that stores the
specified filename or full pathname. The name must be a valid
Windows pathname with ASCII characters only. The character
string must be null terminated and each character occupies one
byte. The maximum length of the string is 127. All the folders
stated in the full pathname must already exist or the file
operation will fail.
Save Logged Alarms 1 32 Not required Same as above
Save Alarm Counts 1 33 Not required Same as above
Save Recipe Data
(in TXT format)
1 34 ID of the recipe block
(0~15)
Same as above
Save Recipe Data
(in DAT format)
1 35 ID of the recipe block
(0~15)
Same as above
Save Logged Operations 1 39 Not required Same as above
Save Logged Data
(in LDF format)
1 40 ID of the data logger (0~15) Same as above
Take Picture
(in BMP format)
1 42 ID of the USB camera (0~3) Same as above
Take Picture
(in JPG format)
1 43 ID of the USB camera (0~3) Same as above
Using Macro Command to Disable Communication Link
The macro command EN_LINK can enable or disable a communication link dynamically. The format and
the parameters of this command are shown below.
EN_LINK(p1, p2, p3)
p1: The link number of the communication link to be enabled or disabled.
p2: The node address of the sub-link to be enabled or disabled. If the specified link has no sub-link, this
parameter is ignored. If the specified link has sub-links and you want to enable or disable the link itself,
this parameter should be 0.
p3: Specifies whether to enable or disable the specified link/sub-link. If this parameter is 0, the
link/sub-link is disabled. If the parameter is 1, the link/sub-link is enabled.
Using Macro Commands to Create a String
1. Copying String
Purpose: Copy a string.
Command: STRCPY(p1, p2)
Parameter:
p1: The internal memory location to store the destination string.
p2: The internal memory location to store the null-terminated source string.
Example 1a
$U100 = “ABCDE”
STRCPY($U200, $U100)
After the command STRCPY is executed, the $U200 contains the string “ABCDE” and its memory
content is like the following.
Word Low Byte High Byte
$U200 ‘A’ ‘B’
$U201 ‘C’ ‘D’
$U202 ‘E’ 0
Example 1b
$U120 = “12”
STRCPY($U220, $U120)
After the command STRCPY is executed, the $U220 contains the string “12” and its memory
content is like the following.
Word Low Byte High Byte
$U220 ‘1’ ‘2’
$U221 0 undefined
2. Appending String
Purpose: Append a string.
Command: STRCAT(p1, p2)
Parameter:
p1: The internal memory location to store the null-terminated destination string.
p2: The internal memory location to store the null-terminated source string.
Example 2a
$U100 = “ABC”
$U120 = “12345”
STRCAT($U100, $U120)
After the command STRCAT is executed, the $U100 contains the string “ABC12345” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘A’ ‘B’
$U101 ‘C’ ‘1’
$U102 ‘2’ ‘3’
$U103 ‘4’ ‘5’
$U104 0 undefined
Example 2b
$U100 = “C:\MyFolder\”
$U120 = “Test”
$U140 = “.txt“
STRCAT($U100, $U120)
STRCAT($U100, $U140)
After the second STRCAT is executed, the $U100 contains the string “C:\MyFolder\Test.txt” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘C’ ‘:’
$U101 ‘\’ ‘M’
$U102 ‘y’ ‘F’
$U103 ‘o’ ‘l’
$U104 ‘d’ ‘e’
$U105 ‘r’ ‘\’
$U106 ‘T’ ‘e’
$U107 ‘s’ ‘t’
$U108 ‘.’ ‘t’
$U109 ‘x’ ‘t’
$U110 0 undefined
3. Getting String Length
Purpose: Get the length of a string.
Command: STRLEN(p1)
Parameter:
p1: The internal memory location to store the null-terminated string.
Example 3
$U100 = “ABC”
$U200 = STRLEN($U100)
After the command STRLEN is executed, the value of $U200 is 3.
4. Converting Number to String
Purpose: Convert a number to a string.
Command: p1 = NUM2STR( p2, p3)
Parameter:
p1: The internal memory location to store the null-terminated destination string.
p2: The number to be converted.
p3: The required number of characters. This parameter specifies the exact number of characters that
the result string should have. If the number of digits of the parameter p2 is less than p3, the result string is
padded on the left with zeros. If the number of digits of the parameter p2 exceeds p3, the value is
truncated. If p3 is 0, there is no limitation on the length of the result string.
Example 4a
$U120 = 123
$U100 = NUM2STR($U120, 0)
After the command NUM2STR is executed, the $U100 contains the string “123” and its memory
content is like the following.
Word Low Byte High Byte
$U100 ‘1’ ‘2’
$U101 ‘3’ 0
Example 4b
$U120 = 1234567 (UD)
$U100 = NUM2STR($U120, 10) (UD)
After the NUM2STR is executed, the $U100 contains the string “0001234567” and its memory
content is like the following.
Word Low Byte High Byte
$U100 ‘0’ ‘0’
$U101 ‘0’ ‘1’
$U102 ‘2’ ‘3’
$U103 ‘4’ ‘5’
$U104 ‘6’ ‘7’
$U105 0 undefined
Example 4c
$U120 = 1234567 (UD)
$U100 = NUM2STR($U120, 5) (UD)
After the NUM2STR is executed, the $U100 contains the string “34567” and its memory content is
like the following.
Word Low Byte High Byte
$U100 ‘3’ ‘4’
$U101 ‘5’ ‘6’
$U102 ‘7’ 0
5. Converting Current Time to String
Purpose: Convert the current time to a string.
Command: p1 = TIME2STR( p2)
Parameter:
p1: The internal memory location to store the null-terminated destination string.
p2: The desired format of the string.
p2 value Format Remark
0 hhmmss hh: hour(00~23); mm: minute(00~59); ss: second(00~59)
1 hhmm hh, mm: same as above
Example 5
// Assume that the current time is 12:30:59
$U100 = TIME2STR(0)
After the command TIME2STR is executed, the $U100 contains the string “123059” and its memory
content is like the following.
Word Low Byte High Byte
$U100 ‘1’ ‘2’
$U101 ‘3’ ‘0’
$U102 ‘5’ ‘9’
$U103 0 undefined
6. Converting Current Date to String
Purpose: Convert the current date to a string.
Command: p1 = DATE2STR( p2)
Parameter:
p1: The internal memory location to store the null-terminated destination string.
p2: The desired format of the string.
p2 value Format Remark
0 YYMMDD YY: year (00~99); MM: month(01~12); DD: day(01~31)
1 YYMM YY, MM: same as above
2 YYMMMDD YY: year (00~99); MMM: month(JAN~DEC); DD: day(01~31)
3 YYMMM YY, MMM: same as above
Example 6a
// Assume that the current date is December 7, 2008.
$U100 = DATE2STR(0)
After the command DATE2STR is executed, the $U100 contains the string “081207” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘0’ ‘8’
$U101 ‘1’ ‘2’
$U102 ‘0’ ‘7’
$U103 0 undefined
Example 6b
// Assume that the current date is December 31, 2008.
$U100 = DATE2STR(3)
After the command DATE2STR is executed, the $U100 contains the string “08DEC” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘0’ ‘8’
$U101 ‘D’ ‘E’
$U102 ‘C’ 0
7. Converting Current Time and Date to String
Purpose: Convert the current time and date to a string.
Command: p1 = TD2STR( p2)
Parameter:
p1: The internal memory location to store the null-terminated destination string.
p2: The desired format of the string.
p2 value Format Remark
0 YYMMDD_hhmmss YY: year (00~99); MM: month(01~12); DD: day(01~31);
hh: hour(00~23); mm: minute(00~59) ; ss: second(00~59)
1 YYMMMDD_hhmmss YY, DD, hh, mm, ss: same as above
MMM: month(JAN~DEC)
2 YYMMDD_hhmm YY, DD, hh, mm: same as above; MM: month(01~12)
3 YYMMDDD_hhmm YY, DD, hh, mm: same as above; MMM: month(JAN~DEC)
Example 7a
// Assume that the current date is December 7, 2008, and the current time is 12:30:59.
$U100 = TD2STR(0)
After the command TD2STR is executed, the $U100 contains the string “081207_123059” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘0’ ‘8’
$U101 ‘1’ ‘2’
$U102 ‘0’ ‘7’
$U103 ‘_’ ‘1’
$U104 ‘2’ ‘3’
$U105 ‘0’ ‘5’
$U106 ‘9’ 0
Example 7b
// Assume that the current date is December 7, 2008, and the current time is 12:30:59.
$U100 = TD2STR(3)
After the command TD2STR is executed, the $U100 contains the string “08DEC07_1230” and its
memory content is like the following.
Word Low Byte High Byte
$U100 ‘0’ ‘8’
$U101 ‘D’ ‘E’
$U102 ‘C’ ‘0’
$U103 ‘7’ ‘_’
$U104 ‘1’ ‘2’
$U105 ‘3’ ‘0’
$U106 0 undefined