1 / 34

PLCs and Vision Appliance Functions

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

kizzy
Download Presentation

PLCs and Vision Appliance Functions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PLCs and Vision Appliance Functions

  2. PLC Types • ModBus PLC • EtherNet/IP • AB Control Logix • GE Fanuc SNP / SRTP • Melsec PLC • Omron C • Motoman MRC / XRC

  3. 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

  4. ModBus PLC • VA can be added as • Modbus Master • Modbus Slave

  5. 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

  6. 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.

  7. 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

  8. 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]

  9. 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

  10. EtherNet/IP • VA is the Server to a : • Implicit Messaging Client • E.g. ControlLogix 5550 Controller • PCCC Client • E.g. Allen-Bradley SLC5/05

  11. 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,

  12. Add VA for Implicit Messaging with RSLogix 5000

  13. 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

  14. 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.

  15. 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

  16. 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

  17. 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 .

  18. Add SNP Destination with VA

  19. GE Fanuc SRTP • An Ethernet Protocol similar to SNP • Allows connecting to GE Fanuc Series 90 PLCs with an Ethernet Interface

  20. MELSEC/Omron PLC • VA is the Master to a : • TCP/IP MELSEC Slave • RS232 MELSEC Slave

  21. MELSEC/Omron - Protocols • MELSEC 1C ACPU • MELSEC 1C AnACPU • MELSEC 2C • MELSEC 3C • MELSEC 4C • OMRON C

  22. 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]

  23. 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

  24. 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

  25. VA Functions • Event Driven Functions • User Functions • Internal Functions

  26. 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

  27. 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

  28. User Functions • Function a user defines to be called by other functions • passed parameters • returns a value

  29. Internal Functions • Math Functions • String Functions • Acquisition/ IO Control • Logging History Control • Misc

  30. 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

  31. 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

  32. 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

  33. 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.

  34. 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.

More Related