0% found this document useful (0 votes)
727 views28 pages

KV-8000 Manual

The document discusses efficient programming techniques using the KV-8000 device. It describes standardizing programs by using variables, functions, and structures to increase efficiency and reusability. This allows for easier programming, readability, batch corrections, and preventing device conflicts when reusing code.

Uploaded by

Daniel Looi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
727 views28 pages

KV-8000 Manual

The document discusses efficient programming techniques using the KV-8000 device. It describes standardizing programs by using variables, functions, and structures to increase efficiency and reusability. This allows for easier programming, readability, batch corrections, and preventing device conflicts when reusing code.

Uploaded by

Daniel Looi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Efficient Programming Utilisation Guide

Step 1 Checking Device Compatibility

Step 2 Standardising Programs


(1) Creating programs that use variables

(2) Increasing efficiency using structures

(3) Increasing efficiency using function blocks


Efficient programming using the KV-8000
As production equipment becomes more complex and lead times become shorter, the need to create complex,
high-quality programs quickly is increasing.
This often means reusing programs, but doing so can result in the following problems.

Conventional programming

(1) Ladder programs are not separated by process


P2-(1) [Automatic operation]
[Automa
tic operatio • Difficult to determine what part of a program to cut out
n]
• Easy to cut out related processes included in separate locations
• Similar processes appear multiple times,
[Manual operation] [Manual operation]
increasing programming times
eration] [Automatic ope
ration]
[Automatic op

n]
operatio
[Manual
eration]
[Manual op

(2) Device conflicts arise


**Origin return**
**Main** MR000 MR100
MR000 MR100 • Corrections are required to
**Main**
prevent device conflicts
MR000 MR100

Duplication of addresses
Import
when reusing programs
P2-(3)

(3) Similar processes are located in various locations


<Manual operation> <Robot control> <Automatic packaging> <Automatic operation A>

• Identical corrections are


required in several locations
...

...
...

The same corrections must be applied to all ladder blocks.

Even reusing programs to increase efficiency takes a significant amount


of time to ensure usability.

2
Programming using the KV-8000 Series

P3-(1)
(1) Readability is improved with programs divided into functions

[Error processing]
• Separating processes
for each module
[Manual operation]
improves readability
• Separating processes
[Automatic operation]
enables programming
[Initialisation processing] from multiple people

Modules

(2) Reusability is increased with variable programming

**Origin return** • Using variables prevents


**Main** Origin return request Origin return start
Operation Operation device conflicts
preparation start
**Main**
Operation preparation Operation start

P3-(3) P3-(3)

No duplication with variables

(3) Batch correction is possible with function blocks


[Module A] [Module A]

• Corrections in one
Revised Function block C Function block C location are applied to
all locations
[Function block C] [Function block C]
[Module B] [Module B]

Function block C Function block C


...

...

Function block C Function block C


...

...

The ability to standardise programming with the KV-8000 makes it easier


to create high-quality programs.

3
Step 1 Checking Device Compatibility

Compatible devices
The device and software versions indicated below support programs using variables.
• PLC

Device/software Version
KV-8000* CPU function Ver. 2.0 or later
KV STUDIO Ver. 11 or later
* Programming using variables is only usable with the KV-8000.
Refer to the KV-8000 User’s Manual for information on how to update the CPU function version.

Updating a system program erases the programs inside the unit.


Caution Back up any programs before updating.

4
Step 2 Standardising Programs

This example calculates the plane equation from three points on a target and then standardises a program to determine
whether the flatness of the inspection point does not exceed the reference value.

Processing flow
(1) S
 ave the values from three measurement points and
the inspection point as target data.
(2) C
 alculate the plane equation from the three
measurement points.
(3) C
 alculate the distance between the inspection point
and the plane (flatness).
(4) D
 etermine whether the calculated flatness exceeds the
reference value.
(5) S
 ave the product data flatness and the judgement
result.

Creating the above process as a ladder program results in something similar to the following.

Calculation of
flatness

Data saving

The program includes difficult processing that makes it difficult to understand at a glance what is
happening. Program standardisation is presented on the next page.

5
Step 2 Standardising Programs

(1) Creating programs that use variables


The KV-8000 supports variable programming. Variables are elements with defined data types that can be used in
programming. These elements can be used in ladder programs and KV Script similar to devices.

The benefits of using variables are outlined below.


• Adding or changing items later does not require verification of the order.
• The ability to use easy-to-understand variable names improves program readability.

This section explains how to use variables through the creation of the following program.

(1) When “MeasureStart” turns ON, “MeasureBusy” also turns ON.


(2) Three seconds after “MeasureBusy” turns ON, “MeasureComp” turns ON.
* Variable names can be set in Unicode, making it possible to set names for variables in languages other than English.

Configuring the unit settings


1. Start KV STUDIO. Select KV-8000 as the compatible model.
Create a new project to be transmitted to the KV-8000 titled “Sample”.

2. For [Unit setting information], add units as necessary for the system configuration.

* To add a unit, click [Yes] in the [Confirm unit setting information] dialogue box.

Drag & drop


the necessary units

6
Creating the program
1. Enter “MeasureStart” as the rising edge contact.
Select the first row of the circuit, enter “p MeasureStart”, and press Enter .

2. Right-click on “MeasureStart” entered above, and click [Register to global variable (2)] to register
the variable as a global variable.
The text colour changes when registering as a global variable.

Right-click Text colour changes

If [Register to global variable] is not displayed in the context menu, the KV STUDIO version may be old,
! Note the selected PLC may not be the KV-8000, or the KV STUDIO project function version may not be 2.0.

3. Enter “MeasureBusy” as the coil.


Enter “o MeasureBusy” to the right of “MeasureStart”, and then press Enter .

4. After entering the above, use the procedure in step 2 to register the variable as a global variable.

■ After registering as a global variable

7
Step 2 Standardising Programs

5. Enter “MeasureComp”.
Select the cell below “MeasureBusy”, type “T MeasureComp #30”, and press Enter .

6. Register as a global variable using the procedure in step 2.


■ After registering as a global variable, a connection line will be drawn.

* Connection lines can also be entered using Alt + Up/Down/Left/Right. Use Alt + Up/Down/Left/Right or the Delete key to clear
a connection line.

7. Perform the same procedure to enter the following program.


Use “a MeasureBusy” for the NO contact, and “b MeasureComp” for the NC contact.

! Note Include the process details as a line comment to ensure easy standardisation during reuse.
Select the line where “MeasureStart” is entered, and press Ctrl + Enter .
A line comment will be inserted. Enter the processing details.
In this example, enter “Measurement Process”. Press Ctrl + Enter to confirm entry.
Including line comments improves the readability of the program.

Enter
“Measurement
Process”.

8
! Note Add comments to variables to increase visibility in the program.
Double-click [Variable] in the workspace to open the [Variable edit] window. The registered variables will
be displayed.
Enter “Start Measurement”, “Measuring”, and “Complete Measurement” in each of the Comment 1 fields.
Up to eight comments can be entered, making it possible to register translation comments as well.
* If no variables are displayed, the KV STUDIO project function version may not be 2.0.

■ After input

! Note Programs can also be created after setting the variables in the [Variable edit] window.

The completed program is as follows.

Point

Mixing variables and devices


The KV-8000 makes it possible to mix variables and devices. When multiple users will be programming, this makes it
possible to program using familiar entry methods.

9
Step 2 Standardising Programs

Point

Global variables and local variables


Global variables
Global variables are handled commonly throughout the project. Variables defined as global variables can be referenced
from multiple programs and the VT5 Series Touch Panel Display.
These variables are automatically allocated to the internal working area, but they can also be allocated to any device.

Local variables
Local variables are handled in program-based units (in modules and function blocks). Variables defined as local
variables can be referenced only within the individual programs. Because such variables cannot be referenced from the
VT5 Series, users must register variables that need to be referenced as global variables.
Local variables are automatically allocated to the internal working area and cannot be allocated to devices.

Details Global variables Local variables


Referencing from other
✓ —
programs
Referencing from VT5 Series ✓* —
Automatic allocation ✓ ✓
Manual device allocation ✓ —
* When allocating a device to a global variable.

Using local variables is recommended if there is no need to reference the variables from other
! Note programs, as this will help prevent conflicts.

Point

Variable data types


The variable data types that can be used with the KV-8000 are as follows.

Data type
Type Description
BOOL Bit

UINT One-word unsigned integer

INT One-word signed integer

UDINT Two-word unsigned integer

DINT Two-word signed integer

REAL Single-precision floating point number

LREAL Double-precision floating point number

STRING * Character string

TIMER Timer

COUNTER Counter

ARRAY Array

Structure name Structure *T


 he character code handled in STRING data types adheres to
the language set for the project.
Function block
Function block For more information on project language settings, refer to the
instance name
KV STUDIO User’s Manual.

10
Point

Applying variable names


Keeping variable names simple and concise is important for increasing the visibility of the names.
The following are a few techniques that can help keep names simple.
• Write only the first letter of the word in uppercase
• Omit vowels
• Use prefixes to represent data types

Data type Common prefixes


Bit (BOOL) b, x, i (input), o (output)

One-word unsigned integer (UINT) w, u, ui

Two-word unsigned integer (UDINT) dw, ud, udi

One-word signed integer (INT) i

Two-word signed integer (DINT) d, di

Real number single-precision floating


f, r
decimal type (REAL)
Real number double-precision floating
df, lr
decimal type (LREAL)

Character string (STRING) str, s, t

Array (ARRAY) arr, a

Constant (CONST) c, c_

Some characters cannot be used for variable names.


Caution If a character string cannot be entered, try using a different string.
Refer to the KV-8000 User’s Manual for information on character strings that cannot be used.

Point
Batch variable importing
Variables can be registered each time or as a batch.
With batch importing, variables are automatically registered as local variables
If the variables are used in a ladder program, the data type is set according to the suffix of the operand being used.
If the variables cannot be matched to the suffix, such as when using in KV Script, the variables are registered as UINT.

In the [Variable edit] window, select the [Local] tab and select the registered program. Perform [Read ladder (&Q)] to register
all items as local variables.

Right-click the registered local variable and select [Move to global variable (M)] to move to the
! Note global variable.

When performing batch registration, verify that no variables entered incorrectly have been
Caution imported. The same variable may be registered as another variable unintentionally and may
not work properly.

11
Step 2 Standardising Programs

(2) Increasing efficiency using structures


A structure is a user-defined data type that includes multiple data types collected together and defined as members.
The benefits of using structures are outlined below.
• Centralised management of common data types
• Collective data transmission for each structure
• Nesting support for using common data structures for multiple variables
• Easy alteration of usage location by adding/editing original structure members

This example shows how to create a structure called “PrdctInfo” for saving product information, and a structure called
“PntInfo” for saving coordinate information.

Definition of “PrdctInfo” data


Member name Data type
Definition of “PntInfo” data
Name STRING[20]
Member name Data type
SerialCode STRING[20]
X INT
MsrPnt PntInfo[3]
Y INT
Variable name Data type TstPnt PntInfo
Z INT
Product_A PrdctInfo Flatness REAL
TestResult BOOL

The variable “Product_A” can then be created using “PrdctInfo” as the data type, making it possible to use Product_A
as a structure-type variable.

Setting a structure-type variable


To use a structure-type variable, define a structure first, and then create a variable using the structure as the data type.

1. Double-click [Structure] in the KV STUDIO workspace.


The [Create a new structure] dialogue box will be displayed.

2. Enter “PntInfo” under “Structure name (N)” and press [OK].

12
3. The [Structure] window will be displayed.

PntInfo uses the X, Y, and Z coordinate information as the aggregated data type, so the member names and
data types should be set as follows.

Member name Data type

X INT

Y INT

Z INT

■ After configuration

This completes the definition procedure for the “PntInfo” structure.

4. Double-click [Structure] in the workspace again, enter “PrdctInfo” under “Structure name (N)”,
and press [OK].

5. The [Structure] window will be opened. Set the member names and data types under “PrdctInfo”
(product name, serial number, measurement point, inspection point, flatness, and inspection result)
according to the following table.

Item Member name Data type


Product name Name STRING[20]

Serial number SerialCode STRING[20]

Measurement point MsrPnt PntInfo[3]*

Inspection point TstPnt PntInfo

Flatness Flatness REAL

Inspection result TestResult BOOL


* Set an array-type structure as the measurement point data type. How to configure the settings is explained in steps 6 to 8.
* Entering the item name as a variable comment makes it possible to use an auxiliary word when displayed.

13
Step 2 Standardising Programs

6. This section explains how to input measurement points (array-type structure variable).
Select “ARRAY” from the data type drop-down list.

! Note The data type can also be entered directly.

7. The [Array size] dialogue box will be displayed. Select “PntInfo” from the data type drop-down list.

8. Set “3” as the array size to register three measurement points. Press [OK].

■ With settings configured

This concludes creation of the structure.

14
9. Double-click [Variable] in the workspace to open the [Variable edit] window, and create the variable
“Product_A”.

Set “PrdctInfo” for the data type.

Because the variable “Product_A” includes the PntInfo-type array “MsrPnt” as a member, “Product_A.MsrPnt[0]”
can be specified.
In addition, because the PntInfo-type includes X, Y, and Z members, this type can be used in programs with
“Product_A.MsrPnt[0].X”.
This concludes configuration of structure-type variables.

Point

Array-type structures
An array defines a collection of variables of the same data type under a single name.
To set the data type when using an array, select ARRAY and specify the data type within.
Setting structure as the data type for an array makes it possible to define array-type structures.
Using array-type structures makes programming more efficient when using the same data structure for multiple axes.
When using an array in a program, include brackets at the end of the variable and set the number of elements.

Example: If the structure “PntInfo” is specified as an array in the data type, the area for saving the data from three
measurement points can be defined as follows.

Measurement point
Variable name Member name Data type MsrPnt[0] coordinates are
Product_A MsrPnt PntInfo[3]
X MsrPnt[1] stored in each
structure
Y X MsrPnt[2]

Z Y X
Z Y
Z

This can be included in the program as follows.

15
Step 2 Standardising Programs

(3) Increasing efficiency using function blocks


A function block is a component that has been registered with an arbitrary name for repeated use as a circuit block.
This section explains how to create and use function blocks.

The following example uses function block creation to obtain flatness from product data.
Function blocks are created according to the following procedure.

1. Function block creation

• Creating new blocks Function block name and classification settings

• Configuring argument settings Argument type, argument name, display format, and comment settings

• Creating the program Programming using arguments and local variables

2. Mid-program calling Program placement

The following is an example of a ladder program converted into a function block.

The function block makes it easy to see at a glance what process is


being performed, and reusability is improved.

16
Function block creation

1. From the menu, select [Program (M)] -> [New (G)].


The [Create New Program] dialogue box is displayed. Enter “FlatnessCheck” for the program name.
Select “Function block” from the “Program Type (T)” drop-down list.

2. Set the function block arguments.


When a new function block is created, the arguments and variables are displayed at the top of the ladder editing
window.

Alternate procedure
From the menu, select [Program (M)] -> [Argument setting (Z)] -> [Function block (F)].

For this example, the arguments are set as follows.

Argument name Argument type Data type

PrdctInfo IN-OUT PrdctInfo

UpperLim IN REAL

Result OUT BOOL

■ After configuration

If the data type is a structure, the entire variable can be passed to the function block.
! Note When passing a structure-type variable to a function block, setting the argument type to IN-OUT
improves processing speed.

17
Step 2 Standardising Programs

Program creation
This section explains how to create a function block program. The description method is the same as for normal programs.
This example creates a program that calculates flatness using “MsrPnt” and “TstPnt” from the “PrdctInfo” argument.

1. Insert an area script.


From the menu, select [Script (S)] -> [Insert area script (A)]. The area script will be inserted.

2. Create the following program in the area script.

When entering a structure-type variable, enter a period after the variable name to specify a member.

RT (Real-Time) Edit

Setting variable names and comments in advance enables RT (real-time) edit, which is displayed as
! Note a candidate during entry. RT (real-time) edit can also be used for commands and device entry.

Using only arguments and local variables for programs in a function block does not cause device
! Note conflicts, thereby improving reusability.

3. Write a program to perform OK/NG judgement of the calculated flatness.

This completes function block creation.

Point

Entering comments
KV Script treats character strings entered after a single quotation as a comment.

Equation wrapping
Equation wrapping is possible in KV Script by using underscores.

18
Arranging function blocks
1. Place the function block.
Drag and drop “FlatnessCheck” from “Function Block” in the workspace to the “Main” module.

Drag & drop

2. The following dialogue box will be displayed.


“FlatnessCheck1” will be automatically set under “Instance Name”. Proceed to the next step.

Variable names can be used as instance names. Using instance names makes it possible to check the
! Note function block execution status by specifying “FlatnessCheck1.ENO”.

3. Set the arguments.


Variables, devices, and constants can be set as function block arguments.
For this example, set the arguments as follows, then click [Overwrt].

19
Step 2 Standardising Programs

4. Right-click on the function block, select [Register to global variable (2)], and register “UpperLim”
as a global variable.

5. Set the conditions for executing the function block.


Enter “p MeasureComp” in the left end of the line where the function block is located. Use Alt + Enter to
connect the connection lines.

This completes function block placement.

The completed program is as follows.

6. From the menu, select [Monitor/Simulator (N)] -> [Transmit to PLC -> Monitor mode (C)] to transmit
the program to the KV-8000.
After transmitting the program, set the PLC to RUN mode.

Caution If the following message is displayed when transmitting the program, the KV-8000 system
program must be updated.
Refer to the KV-8000 User’s Manual for more information.

20
Point

Argument omission settings


IN and OUT type arguments can be omitted when using function blocks.
Use three question marks to specify an argument to be omitted from the ladder program.

Point

Specifying arguments when calling a function block in KV Script


Specifying “(argument name) := (argument)” for the IN argument and the IN-OUT argument, and “(argument name) =>
(argument)” for the OUT argument in the script, makes automatic tracking possible even if the number of function block
arguments increase or decrease.

Point
Library registration
Created function blocks can be registered to a library.
Right-click on the function in the workspace and select [Register in the Library (U)].
Switch to the [Library] tab in the workspace.
The created function block will be registered as a user function block, making it possible to place the function block by
dragging and dropping.

Drag & drop

21
Step 2 Standardising Programs

Point

Function block instances


The variable name (instance name) is set in step 1, and the automatically set “FlatnessCheck1” will be registered in local
variables as a function block-type variable.
If a name is set for an instance, a separate instance can be generated during execution, and the function block argument will
be accessible through “(instance name).A”, simplifying program creation by omitting the argument.

Variable setting The instance is specified


Memory area Program
and executed in
Variable name Data type Allocation of the program. Instance B
memory area
Function block A
Instance B Function block A Instance B area

Instance C Function block A Instance C area


Instance C
Function block A

! Note Whether referencing or changing depends on the argument type setting.

Argument type Details


IN Argument values can be referred to or changed with “(instance name).(argument name)”.

Argument values can be referred to with “(instance name).(argument name)”.


OUT
The value cannot be changed.

IN-OUT Argument values cannot be referred to or changed with “(instance name).(argument name)”.
Unit Argument values cannot be referred to or changed with “(instance name).(argument name)”.

EN, ENO
En (ENable): T
 ransmits the ON/OFF status of the function execution condition into the function block. Include “EN” within
the program inside the function block to use.

ENO (ENable Out): Including “(instance name).ENO” makes it possible to reference values from outside the program
inside the function block. This always turns ON while the function block is running and turns off when
the function block stops.
However, if a value is written by the program inside the function block, the written value is applied.

Module 1 The execution conditions of


the function block are applied.
Instance B
ON
Function block
EN ENO
Instance B
EN

ENO
Instance B.ENO

The ENO status in the function block is applied.

22
Appendix

Data operation for structure-type variables


This example transmits data from the member “MsrPnt[0]” to “MsrPnt[1] in structure-type variable “Product_A” set in
step 2.
In the following example, the value in “MsrPnt[0]” is deleted.

• Using a ladder program

Use the WSIZE command to find the size of


a structure-type variable.
Save the result in the local variable “Size”.

Use the BMOV command to transmit data


from “Product_A.MsrPnt[0]” to
“Product_A.MsrPnt[1]”.

Use the FMOV command to delete the


“Product_A.MsrPnt[0]” data.

A calculation error will occur if the size of the structure variable in the transmission source is larger
Caution
than the size of the structure variable in the transmission destination.

• Using KV Script
Destination Source

Determines the size

Using KV Script makes it possible to transmit the data without determining the data size of the
! Note structure-type variable.

Caution A conversion error will occur with KV Script if the data type of the structure-type variable in the
transmission source is different from that in the transmission destination.

Variable search
1. From the menu, select [Edit (E)] -> [Search device (S)]. The [Search] window will be displayed.
Alternate procedure Ctrl + F

2. Enter a variable name in “Trgt (T)” and press [Search (F)] to search for a variable.

23
Appendix

Registration monitor
Variables can be registered in the registration monitor and monitored in the same way as devices.

1. From the menu, select [Monitor/Simulator (N)] -> [Registration monitor window (G)] to start
the registration monitor.

2. To register the variable, enter the variable name to be registered in the device column

! Note Alternate procedure Drag and drop the variables in the program.

 ove the cursor to the green frame of the variable, and drag and drop the variable when
M
the following cursor is displayed.

Drag & drop

! Note If only variables are registered for structure-type variables, the members will also be registered
automatically.

24
Real-time chart monitor
Variables can be graphed and displayed using the real-time chart monitor in the same way as devices.

1. From the KV STUDIO menu, select [Monitor/Simulator (N)] -> [Real-time chart monitor (N)].

2. From the real-time chart monitor menu, and click [View (V)] -> [Retrieve comment from KV STUDIO
(N)] to import variable information.

3. Click the device list in the real-time chart monitor to register the variables.

! Note To specify a structure-type variable, enter “(variable name).(member name)”.


If the data type of a variable is a structure, the member name will be displayed as a candidate if “.” is
added.

Point

Starting the real-time chart monitor from the registration monitor


When the real-time chart monitor is started from the registration monitor, the structure members are also registered.

25
Appendix

Specification using unit allocation device variables


This section explains how to specify unit allocation devices using variables.
The explanation uses A/D conversion unit KV-SAD04.

1. Create a structure suitable for the unit device allocation.


This example creates a structure called “SAD_Ch_Data” that sets the data for each KV-SAD04 channel.

DM number Name
Leading No. + 000 A/D conversion data

Leading No. + 001 Special data

Leading No. + 002 Analogue data

Leading No. + 003 Peak value

Leading No. + 004 Valley value

2. Set the variables.


In this example, “SAD_Unit1” is set as the variable name, and “SAD_Ch_Data[4]” is set as the data type.

3. Set the data memory allocated to KV-SAD04 as the allocation device.


From the KV STUDIO menu, select [Tools (T)] -> [Unit editor (U)] to open the unit editor, and check the leading
DM number of KV-SAD04.

26
4. Set “DM10300” as the “SAD_Unit1” allocation device.

This completes the setting procedure.


The unit allocation device will be allocated to the variables as follows.

The set variables can be used in the program as follows.

• Ladder program

• KV Script

Point

With a unit allocation device divided into multiple areas


Because the variable allocation device can be set only at the beginning of the structure, if the input/output and the common
area are arranged alternately, the structure of each area must be created first, and then each leading device must be
allocated for use.

27
SAFETY INFORMATION
Please visit: www.keyence.com Please read the instruction manual carefully in
order to safely operate any KEYENCE product.

GLOBAL NETWORK CONTACT YOUR NEAREST OFFICE FOR RELEASE STATUS

AUSTRIA CZECH REPUBLIC INDIA MALAYSIA ROMANIA TAIWAN


BELGIUM FRANCE INDONESIA MEXICO SINGAPORE THAILAND
BRAZIL GERMANY ITALY NETHERLANDS SLOVAKIA UK & IRELAND
CANADA HONG KONG JAPAN PHILIPPINES SLOVENIA USA
CHINA HUNGARY KOREA POLAND SWITZERLAND VIETNAM

The information in this publication is based on KEYENCE’s internal research/evaluation at the time of release and is subject to change without notice. WW11-1039
Company and product names mentioned in this catalogue are either trademarks or registered trademarks of their respective companies. Unauthorised reproduction of this catalogue is strictly prohibited.
Copyright © 2020 KEYENCE CORPORATION. All rights reserved. KVprogrammingintro-WW-TG-GB 2050-1 600X36

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy