Palletizing refers to the act of loading or unloading items onto or from a pallet.  Typically, pallets are partitioned spaces that can be organized into rows and columns.  Palletizing is used widely for unloading work materials from packaging onto process lines, or placing finished products onto a pallet for shipment or further processing.  


Having the ability to automate these tasks can be a great advantage, and is a prime application for a robot.  One way to automate palletizing would be to manually program in each pallet position, however DENSO robots have a palletizing routine built into the programming language to simplify the coding required; while at the same time allowing flexibility in application.


The following palletizing articles are meant to supplement the existing explanations in the manuals and in our training class.

The command: Pallet.CalcPos

The built-in palletizing command is a single line of code that returns a designated pallet position into a chosen position variable.  

P[x] = Pallet.CalcPos (N, M, H, P[xi], P[xii], P[xiii], P[xiv], I[x], K)

  • P[x] – this is the position variable that the pallet position will be put into.  The pallet position will be a P type variable, and you can use a global or a locally defined variable for this.
  • Pallet.CalcPos – this is the PacScript command
  • N – this is the number of rows your pallet has.  This can be either an integer variable or a hard-coded value.
  • M – this is the number of columns your pallet has.  This can be either an integer variable or a hard-coded value.
  • H – Shows the 1 pallet layer height. If the number of layers increases, enter a positive value. If the number of layers decreases due to removal of pallets, enter a negative value. If the number of layers does not change, enter 0.


  • P[xi], P[xii], P[xiii], P[xiv- Four corner points, these points represent the parts position for each of the 4 corner partitions of the pallet. 
    • The figure below depicts in what order the robot palletizes these parts. 

  • These four positions can be entered as global position variables, or as locally defined position variables, but must be of type P.
  • The order these points are entered in the line of code does matter.  It will dictate where the first and last pallet positions are relative to the robot.  
  • It is recommended that the first and second positions are in the same row, and the first and third positions are in the same column.
  • I[x]– This is the current pallet index position.  This can be either a global integer variable or a locally defined integer.  This value represents the desired pallet position number (see picture above) that the command will return.  
    • Commonly, this variable is used in a For…Next loop to constantly return the next sequential pallet position for processing.
    • For example, if I[x] = 3, it will return the pallet position of slot 3 into P[x].
  • K– This is the number of pallet layers, i.e. the number of pallets stacked on top of each other.  This value must be an integer and be ≥ 1.  
    • This can also be tied to an integer variable and a nested For…Next loop to increment both pallet positions, and pallet layers.

Relevant Manual Links