6/7/2016 8:14 AM | |
Posts: 21 Rating: (0) |
Dear all, i want to program a s7 1200 cpu . there are 2 photo sensor fitted on a road. how can i see the below things in wincc flexible 2008 and please tell me how to develop the ladder logic for the below requirements. 1. time when the truck enters i photo sensor 1. 2.time when the truck enters i photo sensor 2. 3. total time duration of the truck to pass from photo sensor 1 to photo sensor 2. ------------------------------------------------------------------------------------------ |
Last edited by: The Helping Hand at: 6/7/2016 9:10:57 AMNew subject after splitting |
|
6/7/2016 11:24 PM | |
Joined: 7/7/2010 Last visit: 10/4/2024 Posts: 15264 Rating: (2422)
|
Pseudo code (you can use the S7-1200 Online Help (F1) and the S7-1200 System Manual for more details). Sensor1 : tag for Input for photo sensor 1 wired to I0.0 (for example) Sensor2 : tag for Input for photo sensor 2 wired to I0.1 (for example) SCL-like: INPUTS : SENSOR1, SENSOR2 : BOOL OUTPUT : TimeElasped STATIC : ObjectDetected, ObjectMeasured : BOOL On Startup / First Scan: // reset to known settings Sensor1TIme := Now (get system time) Sensor2Time := Sensor2Time TimeElapsed := Sensor2Time - Sensor1Time (TimeDiff instruction may help here) ObjectDetected := false ObjectMeasured := false Normal operation: // While enabled to run do the following every scan IF Sensor1 AND NOT ObjectDetected THEN // we detected an object and are not already measuring, capture current time // --- look into a couple of FIFO tables if you need this to work if multiple objects are possible // --- to be measured at the same time Sensor1Time := Now (get system time) ObjectDetected := true; ObjectMeasured := false; END IF IF Sensor2 AND ObjectDetected THEN // we saw an object at sensor 1, and now at sensor 2 Sensor2Time := now (get system time) TimeElapsed := Sensor2Time - Sensor1Time (see TimeDiff or similar time-of-day instructions) ObjectMeasured := true END IF IF ObjectDetected AND ObjectMeasured AND NOT Sensor2 THEN // object has been seen by sensor 2 and now left the area ObjectMeasured := false ObjectDetected := false END IF RETURN TimeElapsed to calling routine --- Probably lots of ways to do it but this might get you moving forward
|
science guy |
|
Follow us on