Kimmi - 2018-12-05

I try to make a small program in codesys 2.3.9.47

I have one incremental encoder that will be used as a limit for measure when we have taken 17meters out of a drum and as a limit when cable are back om drum.
Encoder: Kubler KIS40 - RS422 - 5V power supply. 6 signal wires and 2 power supply.
Cable on drum is about 17 meters.
Motor on drum will have a speed 193 r/min
Drum will have a speed about 25 r/min
PLC must stop -K1 (230V contactor) when kable is out 17 meters.
PLC must stop -K2 (230V contaktor) when kable are in at 0 meter.

I will use the Ref signal on encoder card 750-637 to set CV (counter value) at 0 meter.

CPU: Wago 750-842
DI: Wago 750-431
Encodercard: Wago 750-637
DO: Wago 750-517
Endcard: Wago 750-600

There will be a radio receiver to run motor IN and OUT and this signal will not be used in PLC.
Only encoder, encoder-card and DO-card are in use.

PLC must remember CV (counter-value) if PLC power fall out.

I have work a lot with testing LedderDiagram before in Codesys/Wago on switchboard, but has not work with StructuredText.
I try to make a function block but have problem because input from encoder are WORD and not a BOOL signal.
I can read wActualPosition AT %IW1; and it read up to 65536, before it start at 0 and read up again. It count down when I change direction om motor.
I can also read the count value AT %IB2 (0 to 255) and AT %IB3 (0 to 16).

My problem is to make a program where I have a limit on the output.
In standard Lib, there are only function blocks for CTU, CTD and CTUD with BOOL CU or CD input.

Can someone please help me?

Best Regards
Kimmi