Skip to end of banner
Go to start of banner

Software controlled inputs

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

This example shows how to replace any physical input signal with a software controlled signal.

Technical background

In the Pally program we use variables to define IO channels in a generic way. The address of every IO channel is defined by a special variable, which is an array. The 0th element of the array is always the IO type (standard IO, configurable IO, tool IO, MODBUS, etc. - the complete list can be found here) and the 1st element is the actual IO channel number.

Example values:

[0, 5] means standard digital signal nr. 5

[1, 6] means configurable digital signal nr. 6

[10, 5] means standard digital signal nr. 5 with inverted logic

etc.

For this article, the following special IO types are relevant:

-11: always returns True (no real physical IO channel being accessed)

-1: always returns False (no real physical IO channel being accessed)

If you want to provide mock signals for the Pally program from another thread, set the data source of the corresponding IO channel type (element 0 of the array) to either -1 or -11 in runtime.

The name of the relevant IO channel variables

The variable names are listed below.

  • rf_in_1_product1: first product sensor on the primary conveyor

  • rf_in_1_product2: second product sensor on the primary conveyor

  • rf_in_1_product3...8: additional sensors on the primary conveyor (up to 8 supported)

  • rf_in_2_product1: first product sensor on the secondary conveyor

  • rf_in_2_product2: second product sensor on the secondary conveyor

  • rf_in_2_product3...8: additional sensor on the secondary conveyor (up to 8 supported)

  • rf_in_overflow1: priority sensor on the first conveyor

  • rf_in_overflow2: priority sensor on the second conveyor

  • rf_in_button_P1: right pallet confirmation signal

  • rf_in_button_P2: left pallet confirmation signal

Remember: To change the IO type, update the 0th element of the array, e.g.

rf_in_1_product1[0] = 0

Remember: To change the IO channel, update the 1st element of the array, e.g.

rf_in_1_product1[1] = 7

Examples

Example: simulate the operator has pushed the Right pallet confirmation button

rf_in_button_P1[0] = -11 # simulate user pushed the button
sleep(0.5)
rf_in_button_P1[0] = -1 # simulate user released the button

This will detach the program from the physical IO channel and evaluate as True and False.

Example: simulate a product on the first pick position on the primary conveyor

rf_in_1_product1[0] = -11 # simulate product presence

Example: switch between 2 digital inputs depending on box size (experimental)

if (big_box):
  rf_in_1_product2[1] = 3 # usign DIGITAL IN 3
else:
  rf_in_1_product2[1] = 2 # usign DIGITAL IN 2

  • No labels