ipd technical conference february 19 th 2008 plcs and vision appliance functions

Post on 13-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

IPD Technical ConferenceFebruary 19th 2008

PLCs and Vision Appliance Functions

PLC Types

ModBus PLC

EtherNet/IP

AB Control Logix

GE Fanuc SNP / SRTP

Melsec PLC

Omron C

Motoman MRC / XRC

Modbus PLC

Modbus connection consists of 2 parties

Modbus Slave : Offers register storage which it accesses locally

makes available to one or more masters

Modbus Master accesses one slave device register set

ModBus PLC

VA can be added as

Modbus Master

Modbus Slave

VA as Modbus Master

TCP/IP

Can be a master of multiple slave devices

Add a PLC Destination for each IP Address

RS232

Only one PLC slave per serial port

VA as Modbus Slave

Multiple Modbus masters can connect to one VA Modbus Slave.

2 VAs can communicate with each other; One VA as Master, connected to the other VA as a Slave.

ModBus-Function/Data Block

Four Major Data Blocks From VA perspective, each Data Block has a separate zero-based

address space

Coil Status – 1 Bit Read/Write

Input Status – 1 Bit Read Only

Holding Register – 16 Bit Read/Write Offsets specified in 16 Bit Words, but can overlay 32 bit and 64 bit float

types

Input Register – 16 Bit Read Only

ModBus – Data Types

Holding and Input Register Data Blocks support following types: Char – single ASCII character

Signed 16 bit

Unsigned 16 bit

Float 32

Double (64 bit float)

Offset specified to access register in 16 bit Word Units, e.g., first 3 float 32 registers are:

myFloat32[0] , myFloat32[2], myFloat32[4]

e.g., first 3 double registers are:

myDouble64[0] , myDouble64[4], myDouble64[8]

ModBus –Register Attached Vars

When ModBus Dest. Defined, Register Attached Variable is created

Default Attached Var naming convention “MB[DestID][FuncID][TypeID]”

E.g., For IP@192.168.10.175 , Holding Register, signed 16 => MB175HRs16

Can change default attached var name to anything desired.

Index attached var to access any register inside the associated ModBus data block.

e.g., myFloat32Var[20] , access 11th float32 reg

EtherNet/IP

VA is the Server to a :

Implicit Messaging Client E.g. ControlLogix 5550 Controller

PCCC Client E.g. Allen-Bradley SLC5/05

EtherNet/IP – Implicit Message

Use RSLogix 5000 SW to configure Add VA ETHERNET-MODULE in I/O Configuration folder.

Enter VA IP Address, and Assembly object data,

Name Assembly Instance Size

Input 2 100

Output 1 100

Configuration 1 0

Add VA for Implicit Messaging with RSLogix 5000

EtherNet/IP – PCCC Client Setup

Use RSLogix 500 SW to Configure In Channel Configuration Dialog, Configure Channel 1

(Ethernet)

Add Message Instruction to Read or Write to VA. Target Device: PLC5 for VA

Data Table Address,

writes go to VA Input Assembly Object,

reads are from VA Output Assembly Object

EtherNet/IP– Data Types

SINT – Single ASCII character

INT - Signed 16 bit

DINT - Signed 32 bit

REAL - Float 32

Register Indexing is type size aware

e.g., first 3 float registers are: myFloat32[0] , myFloat32[1], myFloat32[2]

Definition of EtherNet/IP Dest. of a given type, overlays Input & Output Assembly Objects with that type.

EtherNet/IP –Register Attached Variables

When EtherNet/IP Dest. Defined, Register Attached Variable is created

Default Attached Var naming convention “EIP[TypeID]”

E.g., For real float 32 => EIPreal Can change default attached var name to anything desired.

Index attached var to access any register inside the Assembly data blocks.

Register Write - operates on Input Assembly Object

Register Read - operates on Output Assembly Object

Control Logix

Uses Explicit Messages to: Query Global Scope and Program Scope Tags

Read / Write Global Scope Tag variables

Read Program Scope Tag Variables

Supports user defined types

Supported by Control Logix and Compact Logix processors

GE Fanuc SNP (Series 90 Protocol)

RS232 Serial Protocol for accessing

GE Fanuc Series 90 PLCs

Protocol defines various Register Sets which the VA can read or write .

Add SNP Destination with VA

GE Fanuc SRTP

An Ethernet Protocol similar to SNP

Allows connecting to GE Fanuc Series 90 PLCs with an Ethernet Interface

MELSEC/Omron PLC

VA is the Master to a :

TCP/IP MELSEC Slave

RS232 MELSEC Slave

MELSEC/Omron - Protocols

MELSEC 1C ACPU

MELSEC 1C AnACPU

MELSEC 2C

MELSEC 3C

MELSEC 4C

OMRON C

MELSEC/Omron – Data Types

One Data Space supports following types: Unsigned 16 bit ( 1 Register WORD Size)

Fixed point ( 4 Register WORD Size)

Offset specified to access register in 16 bit Word Units, e.g., first 3 fixed registers are: myFixed[0] , myFixed[4],

myFixed[8]

MELSEC/Omron–Register Attached Variables

When MELSEC Dest. Defined, Register Attached Variable is created

Default Attached Var naming convention “MLS[StationNum]_[ProtoId][TypeID]”

E.g., For Station 1 Protocol 1C ACPU/Format2 fixed point register => MLS1_1CAF2fp

Can change default attached var name to anything desired. Index attached var to access any register inside the MELSEC data

block. e.g., myFixed[20] , access 6th (20/4+1)fixed point reg Index is always 16 bit WORD offset of register

Motoman MRC/XRC Protocol

RS232 Serial Protocol to access

Motoman Robot Controllers

Offers variables which controller can: Read with LOADV command

Write with SAVEV command

Supports types: BYTE, INT, REAL, Robot Axis in XYZ form

VA Functions

Event Driven Functions

User Functions

Internal Functions

Event Driven Functions

Solution Initialize

Pre-Image Process

Post-Image Process

Periodic Functions

Call with user specified frequency

Input State Change Function

Called when GPI rising/falling

Event Driven Functions(cont.)

Delayed Event Functions Called specified delay after an event

Image Received

Image Processed

PLC Variable Change of State Called when associated register changes value, actual register

must reside on VA Ethernet/IP

Modbus Slave

User Functions

Function a user defines to be called by other functions

passed parameters

returns a value

Internal Functions

Math Functions

String Functions

Acquisition/ IO Control

Logging History Control

Misc

Math Functions sin(radians) cos(radians) tan(radians) asin(x)

arcsine of x in the range -p/2 to p/2 radians, where:  -1 <= x <= 1. acos(x)

arccosine of x in the range -p/2 to p/2 radians, where:  -1 <= x <= 1. atan(x)

arctangent of x in the range -p/2 to p/2 radians atan2(y,x)

arctangent of y/x in the range -p to p radians exp(x)

the exponential value of x. logn(x)

the natural logarithm of x sqrt(x)

square root of x pow(x,y)

x raised to the power y

String Functions

find(substring, inString) finds first substring in the input inString, returns index of first character. Returns -1 if no match. Example: idx = find("00", "SM WRA 0057 4321") returns 7, or sets idx = 7.

substring(string, startIndex, length) forms a sub-string from the input string, beginning at startIndex (zero-based) of length characters. Example: s2 = substring("SM WRA 0057 4321" , 9, 0) returns string "57 4321" in s2.

strlen(string) returns the number of characters in a string.

getchar(string, index) returns the character located at index (zero-based) in the string.

setchar(string, index, char) sets the character in string, located at index (zero-based), to char.

int(string) converts the input string (of numbers) to an integer value. Example:  x = int("33") sets x = 33

float(string) converts the input string (of numbers) to a floating point value. Example:  x = float("57.499") sets x = 57.499

char( int ) Converts integer to a character type

Acquisition/ IO Control Functions

pulse(activeVal, offsetMillisec, durationMillisec) generates a pulse output. The pulse function can only be assigned to Global

Outputs GPO4 through GPO7 on VA40 For Example, the statement:  Global.GPO[4] = pulse(1,5,10)

outputs on GPO4 an active-high pulse of 10 ms duration and offset 5 ms after the statement executes.

trigger() generate an image trigger signal. The Sensor Trigger must be set to "Inspection

Trigger" when using this function.

triggersource(source) set the trigger source / mode to:

freerun, internal timer, external trigger, or software

Logging/History Control

logstart(fileName, onClient) Start logging the processed frame data to the specified CSV file. For Example, logstart(C:\Logs\iHistlog78.csv,0)

logstop()

Stop logging data that was started by a logstart call.

logimage( fileName ) Explicitly specify the file name for the next image logged on the server.

resethistory() clears the history log of stored images and data.

resetstatistics() clears the pass/recycle/reject counters.

Misc. Internal Functions

copy(source, dest, numElements) Copy numElements from source (an array of elements) to dest (an array of elements. The copy function

can be used to cause multiple PLC registers to be updated in a single transaction. For Example (update 3 Modbus registers):

cmd[0] = x cmd[1] = y cmd[2] = z copy (cmd, MB92HRs16, 3)

print(string, endOfFile) Send a string of data to the default printer.

timemillisec( ) returns current time in milliseconds

getkey( ) Returns a new keyboard input if available, otherwise immediately returns 0.

top related