Upload
kizzy
View
18
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
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 [email protected] , 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.