350 likes | 524 Views
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
E N D
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,
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 .
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.