# HG changeset patch # User Edouqrd Tisserant # Date 1301162031 -3600 # Node ID 5e7457efbb8fe7916ae9fd08aa45d7e123dd8b17 # Parent 5d2927300e2c93e3ba9a3294141f4e5936d9d045 Added dumb SEMA?implementation diff -r 5d2927300e2c -r 5e7457efbb8f lib/ieclib.txt --- a/lib/ieclib.txt Wed Mar 16 10:31:50 2011 +0100 +++ b/lib/ieclib.txt Sat Mar 26 18:53:51 2011 +0100 @@ -36,3 +36,4 @@ {#include "integral_st.txt" } {#include "pid_st.txt" } {#include "ramp_st.txt" } +{#include "sema.txt" } diff -r 5d2927300e2c -r 5e7457efbb8f lib/sema.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/sema.txt Sat Mar 26 18:53:51 2011 +0100 @@ -0,0 +1,25 @@ +(* + * (c) 2011 Edouard Tisserant + * + * Fake semaphore support, for non preemptive implementation. + * + *) + + +FUNCTION_BLOCK SEMA + VAR_INPUT + CLAIM : BOOL; + RELEASE : BOOL; + END_VAR + VAR_OUTPUT + BUSY : BOOL; + END_VAR + VAR + Q_INTERNAL : BOOL; + END_VAR + + Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE)); + BUSY := Q_INTERNAL; + +END_FUNCTION_BLOCK +