26
i M P l Industrial Programming Language (IPL) "Reference Manual for Quantities, Logic/Logistics & Qualities" i n d u s t r I A L g o r i t h m s LLC. www.industrialgorithms.com Version 1.0 July 2014 IAL-IMPL-IPL-RMQLQ-1-0.docx Copyright and Property of Industrial Algorithms LLC.

Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Embed Size (px)

DESCRIPTION

The IPL code can be programmed in any computer programming language that can interact with dynamic link or shared object libraries and then can be used to call our IMPL modeling and solving platform. IMPL is an acronym for Industrial Modeling and Programming Language provided by Industrial Algorithms LLC. The IPL code allows the user to configure and capture the necessary data to model and solve large-scale and complex industrial optimization problems (IOP's) such as planning, scheduling, control and data reconciliation and regression in either off or on-line environments. IPL, also known as the IMPL Interacter, is a complement to IML (known as the IMPL Interfacer) which means that they can be combined together in any arrangement or combination. That is, a portion of the model can be configured in IML/IPL and the remaining portion can be configured in IPL/IML. In addition, all terminology and nomenclature used in IPL are consistent with IML given that their data is interchangeable and exchangeable. Ultimately, once all of the static and dynamic model data have been configured using IML and IPL, then IMPL’s Modeler will create or generate the necessary IMPL sets, lists, parameters, formulas, variables and constraints (as well as the derivatives and expressions). All integers are 4-bytes (long), all reals are 8-bytes (double precision) and all strings are 64-bytes unless otherwise stated. The return status for the integer functions is zero (0) for successful and non-zero for unsuccessful which usually implies that the unit-operation-port-state names and/or the quality name was not recognized.

Citation preview

Page 1: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

i M P l

Industrial Programming Language (IPL)

"Reference Manual for Quantities, Logic/Logistics & Qualities"

i n d u s t r I A L g o r i t h m s LLC. www.industrialgorithms.com

Version 1.0 July 2014

IAL-IMPL-IPL-RMQLQ-1-0.docx

Copyright and Property of Industrial Algorithms LLC.

Page 2: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Introduction

The IPL code can be programmed in any computer programming language that can interact with

dynamic link or shared object libraries and then can be used to call our IMPL modeling and solving

platform. IMPL is an acronym for Industrial Modeling and Programming Language provided by

Industrial Algorithms LLC. The IPL code allows the user to configure and capture the necessary data to

model and solve large-scale and complex industrial optimization problems (IOP's) such as planning,

scheduling, control and data reconciliation and regression in either off or on-line environments. IPL,

also known as the IMPL Interacter, is a complement to IML (known as the IMPL Interfacer) which means

that they can be combined together in any arrangement or combination. That is, a portion of the model

can be configured in IML/IPL and the remaining portion can be configured in IPL/IML. In addition, all

terminology and nomenclature used in IPL are consistent with IML given that their data is

interchangeable and exchangeable. Ultimately, once all of the static and dynamic model data have been

configured using IML and IPL, then IMPL’s Modeler will create or generate the necessary IMPL sets, lists,

parameters, formulas, variables and constraints (as well as the derivatives and expressions).

All integers are 4-bytes (long), all reals are 8-bytes (double precision) and all strings are 64-bytes unless

otherwise stated. The return status for the integer functions is zero (0) for successful and non-zero for

unsuccessful which usually implies that the unit-operation-port-state names and/or the quality name

was not recognized.

Static Model Data (Non-Time-Varying)

Static model data are used to configure the model and are non-time-varying (immutable or constant)

over the past/present and future time-horizons.

Receive the past/present and future time-horizon durations including the discrete-time time-period duration. integer function IMPLreceiveT(dthp,dthf,dtp)

real dthp

real dthf real dtp

Page 3: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Receive the unit and operation names, its type, subtype and use. integer function IMPLreceiveUO(uname,oname,

type,subtype,use,status)

string uname

string oname

string type

string subtype

string use

integer status

Receive the unit, operation and operation-group names. integer function IMPLreceiveUOOG(uname,oname,ogname,status)

string uname

string oname

string ogname

integer status

Receive the from unit-operation-group and the to unit-operation-group names with the repetitive maintenance operation name. integer function IMPLreceiveUOGOGO(uname,ogname,ogname2,oname,status)

string uname

string ogname

string ogname2

string oname

integer status

Receive the unit, operation, port and state names, its type and subtype. integer function IMPLreceiveUOPS(uname,oname,pname,sname,

type,subtype,status)

string uname

string oname

string pname

string sname

string type

string subtype

integer status

Receive the from unit-operation-port-state and the to the unit-operation-port-state names. integer function IMPLreceiveUOPSUOPS(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,status)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer status

Receive the unit-operation rate lower and upper bounds.

Page 4: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer function IMPLreceiveUOrate(uname,oname,

lo,up,status)

string uname

string oname

real lo

real up

integer status

Receive the unit-operation holdup lower and upper bounds. integer function IMPLreceiveUOholdup(uname,oname,

lo,up,status)

string uname

string oname

real lo

real up

integer status

Receive the unit-operation flow profit, performance and penalty weights. integer function IMPLreceiveUOflowweight(uname,oname,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

real prowt

real per1wt

real per2wt

real penwt

integer status

Receive the unit-operation holdup profit, performance and penalty weights. integer function IMPLreceiveUOholdupweight(uname,oname,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

real prowt

real per1wt

real per2wt

real penwt

integer status

Receive the unit-operation setup profit, performance and penalty weights. integer function IMPLreceiveUOsetupweight(uname,oname,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

real prowt

real per1wt

real per2wt

real penwt

integer status

Receive the unit-operation-port-state tee rate lower and upper bounds.

Page 5: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer function IMPLreceiveUOPSteerate(uname,oname,pname,sname,

lo,up,status)

string uname

string oname

string pname

string sname

real lo

real up

integer status

Receive the unit-operation-port-state total rate lower and upper bounds. integer function IMPLreceiveUOPStotalrate(uname,oname,pname,sname,

lo,up,status)

string uname

string oname

string pname

string sname

real lo

real up

integer status

Receive the unit-operation-port-state holdup lower and upper bounds. integer function IMPLreceiveUOPSholdup(uname,oname,pname,sname,

lo,up,status)

string uname

string oname

string pname

string sname

real lo

real up

integer status

Receive the unit-operation-port-state yield lower and upper bounds and fixed value. integer function IMPLreceiveUOPSholdup(uname,oname,pname,sname,

lo,up,fxd,status)

string uname

string oname

string pname

string sname

real lo

real up

real fxd

integer status

Receive the unit-operation-port-state flow profit, performance and penalty weights. integer function IMPLreceiveUOPSflowweight(uname,oname,pname,sname,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

string pname

string sname

real prowt

real per1wt

real per2wt

real penwt

integer status

Page 6: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Receive the unit-operation-port-state-unit-operation-port-state flow profit, performance and penalty weights. integer function IMPLreceiveUOPSflowweight(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

real prowt

real per1wt

real per2wt

real penwt

integer status

Receive the unit-operation-port-state-unit-operation-port-state setup profit, performance and penalty weights. integer function IMPLreceiveUOPSsetupweight(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

prowt,per1wt,per2wt,penwt,status)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

real prowt

real per1wt

real per2wt

real penwt

integer status

Receive the unit-operation up-time lower and upper bounds. integer function IMPLreceiveUOuptime(uname,oname,

lo,up,status)

string uname

string oname

real lo

real up

integer status

Receive the unit-operation-port-state flow-delay lower and upper bounds. integer function IMPLreceiveUOPSflowdelay(uname,oname,pname,sname,

lo,up,status)

string uname

string oname

string pname

string sname

real lo

Page 7: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

real up

integer status

Receive the density names. integer function IMPLreceiveDensity(dname,status)

string dname

integer status

Receive the component names. integer function IMPLreceiveComponent(cname,status)

string cname

integer status

Receive the property names. integer function IMPLreceiveProperty(bname,status)

string bname

integer status

Receive the condition names. integer function IMPLreceiveCondition(aname,status)

string aname

integer status

Receive the coefficient names. integer function IMPLreceiveCoefficient(lname,status)

string lname

integer status

Receive the component-density assignments required by heterogeneous components i.e., volume flow times volume density times mass component where the component is heterogeneous. integer function IMPLreceiveComponentDensity(cname,dname,status)

string cname

string dname

integer status

Receive the property-density assignments required by heterogeneous properties. integer function IMPLreceivePropertyDensity(bname,dname,status)

string bname

string dname

integer status

Receive the unit-operation condition lower, upper and target bounds.

Page 8: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer function IMPLreceiveUOcondition(uname,oname,aname,

lo,up,tgt,status)

string uname

string oname

string aname

real lo

real up

real tgt

integer status

Receive the unit-operation coefficient lower, upper and target bounds. integer function IMPLreceiveUOcoefficient(uname,oname,lname,

lo,up,tgt,status)

string uname

string oname

string lname

real lo

real up

real tgt

integer status

Receive the unit-operation-port-state density lower, upper and target bounds. integer function IMPLreceiveUOPSdensity(uname,oname,pname,sname,dname,

lo,up,tgt,status)

string uname

string oname

string pname

string sname

string dname

real lo

real up

real tgt

integer status

Receive the unit-operation-port-state component lower, upper and target bounds. integer function IMPLreceiveUOPScomponent(uname,oname,pname,sname,cname,

lo,up,tgt,status)

string uname

string oname

string pname

string sname

string cname

real lo

real up

real tgt

integer status

Receive the unit-operation-port-state property lower, upper and target bounds. integer function IMPLreceiveUOPSproperty(uname,oname,pname,sname,bname,

lo,up,tgt,status)

string uname

string oname

string pname

string sname

string bname

Page 9: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

real lo

real up

real tgt

integer status

Receive the unit-operation-port-state condition lower, upper and target bounds. integer function IMPLreceiveUOPScondition(uname,oname,pname,sname,aname,

lo,up,tgt,status)

string uname

string oname

string pname

string sname

string aname

real lo

real up

real tgt

integer status

Dynamic Model Data (Time-Varying)

Dynamic model data are used to configure the model and are time-varying (mutable or non-constant)

over the past/present and future time-horizons. All dynamic model data is digitized into discrete-time

for quantity, logistics and quality problems or digitized into distributed-time for quantity and quality

problems. Discrete-time uses the configured time-period duration and distributed-time determines the

time-points and consequently the time-periods with non-uniform durations from the start, begin and

end-times found in the dynamic model data.

Receive the holdup opening for a unit-operation with its value and start-time. integer function IMPLreceiveUOholdupopen(uname,oname,

value,start,status)

string uname

string oname

real value

real start

integer status

Receive the setup opening for a unit-operation with its value and start-time. integer function IMPLreceiveUOsetupopen(uname,oname,

value,start,status)

string uname

string oname

real value

real start

integer status

Receive the setup order for a unit-operation with its lower and upper bounds, begin and end-times.

Page 10: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer function IMPLreceiveUOsetuporder(uname,oname,

lo,up,begin,end,status)

string uname

string oname

real lo

real up

real beg

real end

integer status

Receive the rate order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSrateorder(uname,oname,pname,sname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

real lo

real up

real tgt

real beg

real end

integer status

Receive the holdup order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSholduporder(uname,oname,pname,sname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

real lo

real up

real tgt

real beg

real end

integer status

Receive the yield order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSyieldorder(uname,oname,pname,sname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

real lo

real up

real tgt

real beg

real end

integer status

Page 11: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Receive the rate order for a unit-operation-port-state-unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSUOPSrateorder(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

real lo

real up

real tgt

real beg

real end

integer status

Receive the setup order for a unit-operation-port-state-unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSUOPSsetuporder(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

real lo

real up

real tgt

real beg

real end

integer status

Receive the density opening for a unit with its value and start-time. integer function IMPLreceiveUdensityopen(uname,dname,

value,start,status)

string uname

string dname

real value

real start

integer status

Receive the component opening for a unit with its value and start-time. integer function IMPLreceiveUcomponentopen(uname,cname,

value,start,status)

string uname

string cname

real value

real start

integer status

Page 12: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Receive the property opening for a unit with its value and start-time. integer function IMPLreceiveUpropertyopen(uname,bname,

value,start,status)

string uname

string bname

real value

real start

integer status

Receive the condition opening for a unit with its value and start-time. integer function IMPLreceiveUconditionopen(uname,aname,

value,start,status)

string uname

string aname

real value

real start

integer status

Receive the condition order for a unit-operation with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOconditionorder(uname,oname,aname,

lo,up,tgt,begin,end,status)

string uname

string oname

string aname

real lo

real up

real tgt

real beg

real end

integer status

Receive the density order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSdensityorder(uname,oname,pname,sname,dname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

string dname

real lo

real up

real tgt

real beg

real end

integer status

Receive the component order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPScomponentorder(uname,oname,pname,sname,cname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

Page 13: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

string sname

string cname

real lo

real up

real tgt

real beg

real end

integer status

Receive the property order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSpropertyorder(uname,oname,pname,sname,bname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

string bname

real lo

real up

real tgt

real beg

real end

integer status

Receive the condition order for a unit-operation-port-state with its lower, upper and target bounds, begin and end-times. integer function IMPLreceiveUOPSconditionorder(uname,oname,pname,sname,aname,

lo,up,tgt,begin,end,status)

string uname

string oname

string pname

string sname

string aname

real lo

real up

real tgt

real beg

real end

integer status

Solution Data

Solution data are variable results (and constraint residuals) computed by the solvers and include

deviation and excursion variables if configured. If the RNNON (Real Non-Naturally Occurring Number) is

returned then the unit-operation-port-state name and/or quality name and/or the time-period was not

recognized.

Retrieve the number of time-periods in the past/present and future time-horizons. subroutine IMPLretrieveT(tpn,tfn)

integer tpn

Page 14: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer tfn

Retrieve a single time-point in the past/present and future time-horizons. real function IMPLretrieveTP1(tpn,tfn,idx)

integer tpn

integer tfn integer idx

Retrieve multiple time-points in the past/present and future time-horizons i.e., a vector of values. subroutine IMPLretrieveTP2(tpn,tfn,value)

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single objective function term i.e., 1 = profit, 2 = performance1, 3 = performance2, 4 = penalty and 5 = total. real function IMPLretrieveOBJterms1(idx)

integer idx

Retrieve multiple objective function terms. subroutine IMPLretrieveOBJterms2(profit,performance1,performance2,penalty,total)

real profit

real performance1 real performance2 real penalty real total

Retrieve a single unit-operation flow value. real function IMPLretrieveUOflow1(uname,oname,

tpn,tfn,idx)

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation flow values. subroutine IMPLretrieveUOflow2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation holdup value. real function IMPLretrieveUOholdup1(uname,oname,

tpn,tfn,idx)

Page 15: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation holdup values. subroutine IMPLretrieveUOholdup2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation setup value. real function IMPLretrieveUOsetup1(uname,oname,

tpn,tfn,idx)

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation setup values. subroutine IMPLretrieveUOsetup2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation startup value. real function IMPLretrieveUOstartup1(uname,oname,

tpn,tfn,idx)

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation startup values. subroutine IMPLretrieveUOstartup2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state flow value.

Page 16: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

real function IMPLretrieveUOPSflow1(uname,oname,pname,sname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state flow values. subroutine IMPLretrieveUOPSflow2(uname,oname,pname,sname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state yield value. real function IMPLretrieveUOPSyield1(uname,oname,pname,sname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state yield values. subroutine IMPLretrieveUOPSyield2(uname,oname,pname,sname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state-unit-operation-port-state flow value. real function IMPLretrieveUOPSUOPSflow1(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn integer idx

Page 17: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Retrieve multiple unit-operation-port-state-unit-operation-port-state flow values. subroutine IMPLretrieveUOPSUOPSflow2(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state-unit-operation-port-state setup value. real function IMPLretrieveUOPSUOPSsetup1(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state-unit-operation-port-state setup values. subroutine IMPLretrieveUOPSUOPSsetup2(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit density value. real function IMPLretrieveUdensity1(uname,dname

tpn,tfn,idx)

string uname

string dname

integer tpn

integer tfn integer idx

Page 18: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Retrieve multiple unit density values. subroutine IMPLretrieveUdensity2(uname,dname,

tpn,tfn,value)

string uname

string dname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit component value. real function IMPLretrieveUcomponent1(uname,cname

tpn,tfn,idx)

string uname

string cname

integer tpn

integer tfn integer idx

Retrieve multiple unit component values. subroutine IMPLretrieveUcomponent2(uname,cname,

tpn,tfn,value)

string uname

string cname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit property value. real function IMPLretrieveUproperty1(uname,bname

tpn,tfn,idx)

string uname

string bname

integer tpn

integer tfn integer idx

Retrieve multiple unit property values. subroutine IMPLretrieveUproperty2(uname,bname,

tpn,tfn,value)

string uname

string bname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation condition value. real function IMPLretrieveUOcondition1(uname,oname,aname,

tpn,tfn,idx)

string uname

string oname

string aname

integer tpn

integer tfn

Page 19: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

integer idx

Retrieve multiple unit-operation condition values. subroutine IMPLretrieveUOcondition2(uname,oname,aname,

tpn,tfn,value)

string uname

string oname

string aname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation coefficient value. real function IMPLretrieveUOcoefficient1(uname,oname,lname,

tpn,tfn,idx)

string uname

string oname

string lname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation coefficient values. subroutine IMPLretrieveUOcoefficient2(uname,oname,lname,

tpn,tfn,value)

string uname

string oname

string lname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state density value. real function IMPLretrieveUOPSdensity1(uname,oname,pname,sname,dname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string dname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state density values. subroutine IMPLretrieveUOPSdensity2(uname,oname,pname,sname,dname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string dname

integer tpn

integer tfn real value(1:tpn+tfn)

Page 20: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

Retrieve a single unit-operation-port-state component value. real function IMPLretrieveUOPScomponent1(uname,oname,pname,sname,cname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string cname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state component values. subroutine IMPLretrieveUOPScomponent2(uname,oname,pname,sname,cname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string cname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state property value. real function IMPLretrieveUOPSproperty1(uname,oname,pname,sname,bname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string bname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state property values. subroutine IMPLretrieveUOPSproperty2(uname,oname,pname,sname,bname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string bname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state flow deviation value. real function IMPLretrieveUOPSflowdeviation1(uname,oname,pname,sname,

tpn,tfn,idx)

string uname

string oname

string pname

Page 21: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

string sname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state flow deviation values. subroutine IMPLretrieveUOPSflowdeviation2(uname,oname,pname,sname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation flow excursion value. real function IMPLretrieveUOflowexcursion1(uname,oname,

tpn,tfn,idx)

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation flow excursion values. subroutine IMPLretrieveUOflowexcursion2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation holdup excursion value. real function IMPLretrieveUOholdupexcursion1(uname,oname,

tpn,tfn,idx)

string uname

string oname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation holdup excursion values. subroutine IMPLretrieveUOholdupexcursion2(uname,oname,

tpn,tfn,value)

string uname

string oname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state-unit-operation-port-state flow excursion value.

Page 22: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

real function IMPLretrieveUOPSUOPSflowexcursion1(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state-unit-operation-port-state flow excursion values. subroutine IMPLretrieveUOPSUOPSflowexcursion2(uname,oname,pname,sname,

uname2,oname2,pname2,sname2,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state density excursion value. real function IMPLretrieveUOPSdensityexcursion1(uname,oname,pname,sname,dname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string dname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state density excursion values. subroutine IMPLretrieveUOPSdensityexcursion2(uname,oname,pname,sname,dname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string dname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state component excursion value. real function IMPLretrieveUOPScomponentexcursion1(uname,oname,pname,sname,cname,

Page 23: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string cname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state component excursion values. subroutine IMPLretrieveUOPScomponentexcursion2(uname,oname,pname,sname,cname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string cname

integer tpn

integer tfn real value(1:tpn+tfn)

Retrieve a single unit-operation-port-state property excursion value. real function IMPLretrieveUOPSpropertyexcursion1(uname,oname,pname,sname,bname,

tpn,tfn,idx)

string uname

string oname

string pname

string sname

string bname

integer tpn

integer tfn integer idx

Retrieve multiple unit-operation-port-state property excursion values. subroutine IMPLretrieveUOPSpropertyexcursion2(uname,oname,pname,sname,bname,

tpn,tfn,value)

string uname

string oname

string pname

string sname

string bname

integer tpn

integer tfn real value(1:tpn+tfn)

Index Data

Index data are computed by the IMPL Modeler and are used to convert names to numbers during the

creation or generation of our IMPL sets, lists, parameters, formulas, variables and constraints. These

indices can also be used to reference, address, point, key or index to any of model and solution data

using the IMPL Server routines IMPLrow(), IMPLreview1()/ IMPLreview2() and IMPLrevise1()/

Page 24: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

IMPLrevise2() where the row routine determines the row-element index in the IMPL sets, list,

parameter, formula, variable and constraint vectors and the revise routines can be used to update or

modify any of their row-element values if required. If the INNON (Integer Non-Naturally Occurring

Number) is returned then the unit-operation-port-state name and/or quality name was not recognized.

Retrieve the unit index. integer function IMPLUu(uname)

string uname

Retrieve the operation index. integer function IMPLOo(oname)

string oname

Retrieve the port index. integer function IMPLPp(pname)

string pname

Retrieve the state index. integer function IMPLSs(sname)

string sname

Retrieve the unit-operation index. integer function IMPLUOm(uname,oname)

string uname

string oname

Retrieve the port-state index. integer function IMPLPSk(pname,sname)

string pname

string sname

Retrieve the unit-operation-port-state index. integer function IMPLUOPSij(uname,oname,pname,sname)

string uname

string oname

string pname

string sname

Retrieve the unit-operation-port-state-unit-operation-port-state index. integer function IMPLUOPSUOPSji(uname,oname,pname,sname,

uname2,oname2,pname2,sname2)

Page 25: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

string uname

string oname

string pname

string sname

string uname2

string oname2

string pname2

string sname2

Retrieve the unit-operation-group index. integer function IMPLUOGsg(uname,ogname)

string uname

string ogname

Retrieve the unit-operation-group-operation-group index. integer function IMPLUOGOGw(uname,ogname1,ogname2)

string uname

string ogname1

string ogname2

Retrieve the density index. integer function IMPLDd(dname)

string dname

Retrieve the component index. integer function IMPLCc(cname)

string cname

Retrieve the property index. integer function IMPLBb(bname)

string bname

Retrieve the condition index. integer function IMPLAa(aname)

string aname

Retrieve the coefficient index. integer function IMPLLl(lname)

string lname

Retrieve the first non-zero unit-operation flow variable row index in the variable vector. By knowing the number of time-periods in the past/present and future then the unit-operation flow variable results can be retrieved directly using the IMPL Server routines IMPLreview1() and IMPLreview2(). integer function IMPLUOflow(uname,oname)

string uname

Page 26: Industrial Programming Language (IPL) Reference Manual for Quantities, Logic/Logistics & Qualities

string oname

Retrieve the first non-zero unit-operation holdup variable row index in the variable vector. integer function IMPLUOholdup(uname,oname)

string uname

string oname

Retrieve the first non-zero unit-operation setup variable row index in the variable vector. integer function IMPLUOsetup(uname,oname)

string uname

string oname

Retrieve the first non-zero unit-operation condition variable row index in the variable vector. integer function IMPLUOcondition(uname,oname,aname)

string uname

string oname

string aname

Retrieve the first non-zero unit-operation coefficient variable row index in the variable vector. integer function IMPLUOcoefficient(uname,oname,lname)

string uname

string oname

string lname