Author

Name

Fonction

Date

M. BONNETO

Software development manager

2010/05/26

Version Trail

Version

Date

Listing of changes

Revised by

3.0

2010/05/26

Création

LL

Summary

Definition of DLL communication functions for Electroclass storage machines

V3.0

Purpose:

Le but de ce document est de décrire le fonctionnement de la DLL de communication permettant le pilotage des moyens automatiques de stockage (stockeurs rotatifs, Transstockeur,….).

The purpose of this document is to describe the operation of the interface DLL that enables software to control and manage Electroclass storage machine.

Description :

PASCAL LANGUAGE CONVENTION

int APPELTIROIR(char* IDENT, char* MACHINE, int POSTE,

int NIVEAU,int ZONE, int CASE, int QTE);

int ETATMACHINE(char* IDENT, char* MACHINE,int POSTE,

int NIVEAU,int ZONE, int CASE, int QTE);

C LANGUAGE CONVENTION

int C_APPELTIROIR(char* IDENT, char* MACHINE,int POSTE,

int NIVEAU,int ZONE, int CASE, int QTE);

int C_ETATMACHINE(char* IDENT, char* MACHINE,int POSTE,

int NIVEAU,int ZONE, int CASE, int QTE);

DETAILS DES FONCTIONS

  • RET APPELTIROIR(IDENT, MACHINE, POSTE, NIVEAU, ZONE, CASE, QTE )

(Appel = French for call-up; this function summons a machine location)

RET

Integer:

Code Returned by the function (see list hereunder)

IDENT

String:

Identifies Software

MACHINE

String:

Carousel Name (A to Z for carrousel, 1 to 9 for lift)

POSTE

Integer:

Workstation number

NIVEAU

Integer:

Level/drawer Position (up and down)

ZONE

Integer:

Zone Position on shelf (left to right)

CASE

Integer:

Depth Position on shelf (front to back)

QTE

Integer:

Quantity

Codes returned by function

RET_OK

= 0

(Task OK – READY on Carousel)

RET_MACHINE

= 1

(Error on Carousel Name)

RET_POSTE

= 2

(Error on Workstation Name)

RET_NIVEAU

= 3

(Error on Level No)

RET_MODEMANU

= 7

(Manual Mode)

RET_DIALOGUE

= 8

(Communication Error)

  • RET ETATMACHINE(IDENT, MACHINE, POSTE, NIVEAU, ZONE, CASE, QTE)

(Etat = French for STATUS, this function queries the Carousel on its status)

RET

Integer:

Code Returned by the function (see list hereunder)

IDENT

String:

Identifies Software

MACHINE

String:

Carousel Name (A to Z)

POSTE

Integer:

Workstation number

NIVEAU

Integer:

Level Position (up and down)

ZONE

Integer:

Zone Position on shelf (left to right)

CASE

Integer:

Depth Position on shelf (front to back)

QTE

Integer:

Quantity

Codes returned by this function:

RET_OK

= 0

(Task OK – READY on Carousel)

RET_MACHINE

= 1

(Error on Carousel/lift Name)

RET_POSTE

= 2

(Error on Workstation Name)

RET_NIVEAU

= 3

(Error on Level/drawer No)

RET_POSITION

= 4

(Error zone does not exist)

RET_TIROIR

= 5

(Error on drawer – does not concern carousels)

RET_MAX

= 6

(Error on quantity)

RET_MODEMANU

= 7

(Manual Mode)

RET_DIALOGUE

= 8

(Communication Error)

RET_OCCUPE

= 9

(Carousel busy or OCCUPIED)

RET_ETAT

= 99

(Response to Status : Carousel busy or Occupied)

  • RET RETOURTIROIR(IDENT, MACHINE, POSTE)

(Retour = French for Return, this function is used only with lift machine for return a drawer into the machine)

RET

Integer:

Code Returned by the function (see list hereunder)

IDENT

String:

Identifies Software

MACHINE

String:

Carousel Name (A to Z)

POSTE

Integer:

Workstation number

NIVEAU

Integer:

Level Position (up and down)

ZONE

Integer:

Zone Position on shelf (left to right)

CASE

Integer:

Depth Position on shelf (front to back)

QTE

Integer:

Quantity

Codes returned by this function:

RET_OK

= 0

(Task OK – READY on Carousel)

RET_MACHINE

= 1

(Error on Carousel/lift Name)

RET_POSTE

= 2

(Error on Workstation Name)

RET_NIVEAU

= 3

(Error on Level/drawer No)

RET_MODEMANU

= 7

(Manual Mode)

RET_DIALOGUE

= 8

(Communication Error)

CODES RETURNING by STATUS ORDER

RET_MOUVEMENT

= 100

(Carousel MOVING)

RET_CONSULTATION

= 101

(Drawer on workstation – this status does not concern carousels)

RET_AUTREDEPOT

= 102

(Drawer on another workstation – does not concern carousels)

RET_RETOUR

= 103

(Drawer being replaced – does not concern carousels)

RET_MOUVEMENTSUIV

= 104

(Indicates Operator has moved on to next move)

RET_SECURITEB1

= 200

Low security fault on Workstation 1

RET_SECURITEH1

= 201

High security fault on Workstation 1

RET_SECURITEB2

= 202

Low security fault on Workstation 2

RET_SECURITEH2

= 203

High security fault on Workstation 2

RET_SECURITEB3

= 204

Low security fault on Workstation 3

RET_SECURITEH3

= 205

High security fault on Workstation 3

RET_CHARGEMENT

= 206

(Excessive Unbalance)

RET_COMMAND

= 207

(Incorrect Command)

RET_TIMEOUT

= 208

(Timeout  reached)

RET_DEFAUT_ROBOT

= 209

(FAULT on robot – does not concern carousels)

RET_DEFAUT_DEPOT

= 210

(FAULT on tray deposit – does not concern carousels)

RET_REARMEMENT

= 211

(Awaiting Acknowledgment on Fault)

RET_CLAVIER

= 212

(Keyboard Error)

RET_DEFAUT_POSTE

= 213

(FAULT on tray deposit – does not concern carousels)

RET_DEPOT_RESERVED

= 300

(Tray deposit reserved – not carousels)

RET_DEPOT_APPEL

= 301

(Tray deposit being called up – not carousels)

RET_DEPOT_CONSULT

= 302

(Tray deposit in use – not carousels)

RET_DEPOT_LIBERE

= 303

(Tray deposit now freed up – not carousels)

RET_DEPOT_RETOUR

= 304

(Tray deposit awaiting return – not carousels)

RET_DEPOT_OCCUP

= 305

(Tray deposit occupied – not carousels)

RET_DEPOT_INEXIST

= 306

(Non existent tray deposit – not carousels)

RET_TRANSMISSION

= 900

(Transmission Error)

RET_NONAUTORISE

= 901

(Not Allowed instruction)

RET_DEFAUT

= 902

(Unidentified Fault)

RET_SECTEUR

=903

(PowerOut during MOVE)

RET_DEFAUTATV

= 904

(FAULT on Speed controller)

RET_BLOCAGE

= 905

(Mechanical Jam)

RET_ORDREREFUSE

= 906

(Order refused)

Visual Basic EXEMPLE

Declaration of CEPAGE32.DLL functions

Declare Function AppelTiroir Lib "CEPAGE32.DLL" (ByVal IDENT$, ByVal Machine$, ByVal POSTE%, ByVal NIVEAU%, ByVal ZONE%, ByVal CASES%, ByVal QTE%) As Integer

Declare Function EtatMachine Lib "CEPAGE32.DLL" (ByVal IDENT$, ByVal Machine$, ByVal POSTE%, ByVal NIVEAU%, ByVal ZONE%, ByVal CASES%, ByVal QTE%) As Integer

Declare Function RetourTiroir Lib "CEPAGE32.DLL" (ByVal IDENT$, ByVal Machine$, ByVal POSTE%)

Call of CEPAGE32.DLL functions

Dim CRET Integer

Dim POSTE_Int As Integer

Dim NIVEAU_Int As Integer

Dim ZONE_Int As Integer

Dim CASE_Int As Integer

Dim VERSION As String * 100

Dim QUANTITE_Int As Integer

CRET = AppelTiroir("ITEM", MACHINE, POSTE_Int, NIVEAU_Int, ZONE_Int, CASE_Int, QUANTITE_Int)

CRET = EtatMachine("ITEM", MACHINE, POSTE_Int, NIVEAU_Int, ZONE_Int, CASE_Int, QUANTITE_Int)

Declaration of ‘Retrunin code ‘ Constantes

Global Const RET_OK = 0

Global Const RET_MACHINE = 1

Global Const RET_POSTE = 2

Global Const RET_NIVEAU = 3

Global Const RET_POSITION = 4

Global Const RET_TIROIR = 5

Global Const RET_MAX = 6

Global Const RET_MODEMANU = 7

Global Const RET_DIALOGUE = 8

Global Const RET_OCCUPE = 9 ' Machine busy

Global Const RET_ETAT = 99 ' Response to Status : Carousel busy or Occupied

Global Const RET_MOUVEMENT = 100 ' (Machine mouving)

Global Const RET_CONSULTATION = 101 ' (Drawer on working bay)

Global Const RET_AUTREDEPOT = 102 ' (Drawer on a other working bay)

Global Const RET_RETOUR = 103 ' (Drawer returning)

Global Const RET_MOUVEMENTSUIV = 104 ' (Indicate to the software that user want the next location )

Global Const RET_SECURITEB1 = 200 ' (Low security fault on Workstation 1)

Global Const RET_SECURITEH1 = 201 ' (High security fault on Workstation 1)

Global Const RET_SECURITEB2 = 202 ' (Low security fault on Workstation 2)

Global Const RET_SECURITEH2 = 203 ' (High security fault on Workstation 2)

Global Const RET_SECURITEB3 = 204 ' (Low security fault on Workstation 3 or 4)

Global Const RET_SECURITEH3 = 205 ' (High security fault on Workstation 3 or 4)

Global Const RET_CHARGEMENT = 206 ' (Excessive Unbalance)

Global Const RET_COMMAND = 207 ' (Incorrect Command)

Global Const RET_TIMEOUT = 208 ' (Timeout  reached)

Global Const RET_DEFAUT_ROBOT = 209 ' (FAULT on robot – does not concern carousels)

Global Const RET_DEFAUT_DEPOT = 210 ' (FAULT on tray deposit – does not concern carousels)

Global Const RET_REARMEMENT = 211 ' (Awaiting Acknowledgment on Fault)

Global Const RET_CLAVIER = 212 ' (Keyboard Error)

Global Const RET_DEFAUT_POSTE = 213 ' (FAULT on tray deposit – does not concern carousels)

Global Const RET_DEPOT_RESERVED = 300 ' (Tray deposit reserved – not carousels)

Global Const RET_DEPOT_APPEL = 301 ' (Tray deposit being called up – not carousels)

Global Const RET_DEPOT_CONSULT = 302 ' (Tray deposit in use – not carousels)

Global Const RET_DEPOT_LIBERE = 303 ' (Tray deposit now freed up – not carousels)

Global Const RET_DEPOT_RETOUR = 304 '(Tray deposit awaiting return – not carousels)

Global Const RET_DEPOT_OCCUP = 305 ' (Tray deposit occupied – not carousels)

Global Const RET_DEPOT_INEXIST = 306 ' (Non existent tray deposit – not carousels)

Global Const RET_TRANSMISSION = 900 ' (Transmission Error)

Global Const RET_NONAUTORISE = 901 ' (Not Allowed instruction)

Global Const RET_DEFAUT = 902 ' (Unidentified Fault)

Global Const RET_SECTEUR = 903 ' (PowerOut during MOVE)

Global Const RET_DEFAUTATV = 904 ' (FAULT on Speed controller)

Global Const RET_BLOCAGE = 905 ' (Mechanical Jam)

Global Const RET_ORDREREFUSE = 906 ' (Order refused)

INSTALLATION

DLLs must be installed in the current folder of your application.

Electroclass.ini file can parameter DLL following machine type :

  • CEPAGE : carrousels TITAN

Parameter for the communication port (Port COM1 par defalt)

Parameter of the CEPAGE protocole version (positioning in accordance with the configuration of storage machine)

  • Jumper : Lift Jumper 

Parameter of the IP address and TCP port for communicate with the storage

Parameter of the JUMPER protocole version (positioning in accordance with the configuration of storage machine)

Parameter of the PLC No (positioning in accordance with the configuration of storage machine)

  • SIMULGSTOCK : DLL for simulate carrousels