How can you make One shot-esque script?

Thanks for all your input guys but I found a fix in a small loophole. I understand what was mentioned about ignition not running at the same speed as the PLC. With that I found that the common element is time and that I could come up with a way to allow the script run once with my timed boolean running for 2 seconds(more than enough time for the plc to communicate the state to ignition). Using the event ‘property change’ scripting I have that bit trigger a memory bit in ignition that carries out the emailing script. By placing a NC bit in the PLC timing logic, I have the last piece of the email script set that NC bit true and then waiting 5 seconds. This allows the PLC bit to trigger on long enough for ignition to get the state and then kill it once the script completes. The wait logic allows for the script to complete the email out until PLC timer is completely off. Working like a champ now. I have started applying this to other components and works great.

Just did the following:
import time

tag = currentValue.value

#Script only processes on high property change not low
if tag == 1:

<>

system.tag.write(NC_tag),1)
time.sleep(2)