PDA

View Full Version : Process Gateway IEC104 COT when writing on Internal Variables



PhilippeVDT
8th June 2020, 12:35
Hi,<br><br>I am working on a conversion project from Sicam 230 into Zenon Energy Edition.<br><br>I have a question related to the process gateway.<br><br>I have an internal variable in Zenon, Data Type = real.&nbsp; This variable is routed in the process gateway, IEC104, TI = 50.<br><br>This variable is used as a set point value to be treated in Zenon.<br><br>A rema is connected to this internal variable.&nbsp; In the rema, there is a condition triggering a function to execute a VBA macro.&nbsp; In VBA the further treatement of the received value is handled.<br><br>The rema only triggers the Function in case the cause of transmission = 6.<br><br>Since I write on an internal variable, the COT cannot be used to trigger a function.&nbsp; So my question is, how can I get the COT out of the command entering the process gateway?&nbsp; It has to get in there, but it is not available on the internal variables (as far as I know).<br><br>Thanks for your support<br>Philippe<br><br><br>

ursulak
8th June 2020, 13:06
A value of zenon&nbsp;variable,&nbsp;if received by zenon Process Gateway, has status bits and timestamp given by the driver of the variable, not by the zenPG. The zenPG pokes (writes)&nbsp;the received value to the driver and only driver&nbsp;then decides what status bits and time stamp this variable&nbsp;will have in zenon. A write value to an internal variable&nbsp;does not cause the COT status updates. Only&nbsp;drivers IEC870, IEC850 and DNP3 are supporting COT.<br><br>To detect the new value&nbsp;received via zenPG to some&nbsp;variable,&nbsp;you have to react on value <u>change</u>. In the reaction matrix there is a check box 'treat each change of value as new limit violation' but i'm not sure if this will trigger&nbsp;when the&nbsp;new command contains exactly same value as the previous. Try out. <br><br>In case of zenPG IEC870Slave and T50:&nbsp;when your macro is completed, you can set to the variable some value out of range of this particular&nbsp;T50 command,&nbsp;e.g. some negative value. As T50 are 'write-only', the zenPG IEC870Slave is <u>not</u> sending any ASDUs to the remote 870-master when the zenon value changes.&nbsp;Thus, while you are just expecting new command, in zenon in the meantime you can set in this variable&nbsp;any value you want and know that the remote 870-master will never send such value in a command.<br><br><br>&nbsp;

PhilippeVDT
16th June 2020, 08:18
Hi Ursulak,<br><br>Thanks for the tip for the work around.&nbsp; It is working.<br><br>Philippe<br><br><br>
A value of zenon&nbsp;variable,&nbsp;if received by zenon Process Gateway, has status bits and timestamp given by the driver of the variable, not by the zenPG. The zenPG pokes (writes)&nbsp;the received value to the driver and only driver&nbsp;then decides what status bits and time stamp this variable&nbsp;will have in zenon. A write value to an internal variable&nbsp;does not cause the COT status updates. Only&nbsp;drivers IEC870, IEC850 and DNP3 are supporting COT.<br><br>To detect the new value&nbsp;received via zenPG to some&nbsp;variable,&nbsp;you have to react on value <u>change</u>. In the reaction matrix there is a check box 'treat each change of value as new limit violation' but i'm not sure if this will trigger&nbsp;when the&nbsp;new command contains exactly same value as the previous. Try out. <br><br>In case of zenPG IEC870Slave and T50:&nbsp;when your macro is completed, you can set to the variable some value out of range of this particular&nbsp;T50 command,&nbsp;e.g. some negative value. As T50 are 'write-only', the zenPG IEC870Slave is <u>not</u> sending any ASDUs to the remote 870-master when the zenon value changes.&nbsp;Thus, while you are just expecting new command, in zenon in the meantime you can set in this variable&nbsp;any value you want and know that the remote 870-master will never send such value in a command.<br><br><br>&nbsp;<br>
<br>