EcoStruxure Geo SCADA Expert Forum
Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-06 11:09 PM . Last Modified: 2023-05-03 12:24 AM
>>Message imported from previous forum - Category:Scripts and Tips<<
User: ROVSCADAENGINEER, originally posted: 2019-05-29 23:32:59 Id:439
Blockchained logic programming. (Prospect**SCADA functionality) Seemless updates to templates with property overrides active using block chain logic programming.
When updating a template with a property override on a logic component this cannot be done without removing the property override on the site which deletes any modification which have been made to instances through the property override referencing the template object. in clear SCADA. By creating seemless logic construction a property override could be in place but then updates made to the main template for new elements or rollouts which include OR funcitonallity. When a logic program is made this would mean that instead of compiling the logic as one solid function block diagram package FBD it would fall as a FBD package with Sub FBD packages with additional subprograms or packages.
Hence when an update was made to the main template this would still update the other sites. but only in the logic level, the individual modifications would still remain but then the new addition would be stacked under.
Take for example this logic.
![]((see attachments below) 8t/im2kx8ddmuwx.png "")
Note that failed to start has been added to pump 1. this Is running to an or block. the same principle could be applied to new sensors coming online with DNP and large networks. the integration would be seemless with existing unique modifications using the same template.
If there is a workaround to this great. But otherwise I will leave this to the software engineers at Schneider.
Attached file: (editor/8t/im2kx8ddmuwx.png), logic FBD funcitonality.PNG File size: 38795
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-06 11:10 PM
>>Responses imported from previous forum
Reply From User: hardin4019, posted: 2019-06-17 19:26:20
I assume that you had to add "Document Content" to the property overrides due to some instance of the template needing something that the template didn't provide for?
I have some rather large FBD's that are parts of templates that have been overridden so I can make minor changes for things like time zone, different number of meters, etc. So I have run into the same thing and agree it would be nice if there was a more seamless way to roll out changes from a template to instances that have been customized.
Reply From User: BevanWeiss, posted: 2019-06-18 12:07:40
I think that you're using ClearSCADA in the wrong way.
It's not intended to perform low level control in this manner. It's even in the name, Supervisory Control and Data Acquisition... supervisory.
I absolutely shudder to think that you would ever have a signal called 'E-Stop' within a SCADA platform. Would it comply with any kind of safety guidelines? i.e. 4024, 62061, 61508... I'm confident it would not.
This logic really belongs within the field device.
The complexity of having both modifiable and inherited logic just doesn't seem worthwhile to me for ClearSCADA. If you need to have some standard logic, then you should separate this out into a logic library.
If you can't separate out your logic in such a manner, then how would you expect ClearSCADA to be able to do this automatically?
Reply From User: geoffpatton, posted: 2019-06-19 15:43:45
Bevan,
Yes you should not put anything critical to the local operation of devices in SCADA, but that FBD is just generating a general trouble alarm. It could be for email notification. For that very reason I have done something similar in a ST program using a Query. It checks the state of a Metadata grouped alarm field on a point. Then loops through the results to check the alarm state of the points with that field set. If any of them are in alarm then it and my timer of 10 minutes has been reached it sets an internal point to Alarm and and email is sent on just that alarm. My reason to do it was to give the operators the flexibility to move alarms between the grouped alarm and being individually redirected and an email sent. It also evaluates the reverse for off time of 5 minutes and a cleared alarm. The timers are also adjustable by the operators.
My solution is not prefect either. Running Queries in ST can be problematic, if they are large and run all the time they can cause performance problems by locking the Database to much so everything else has to wait.
Reply From User: ROVSCADAENGINEER, posted: 2019-06-20 21:15:44
[at]BevanWeiss said:
I think that you're using ClearSCADA in the wrong way.
It's not intended to perform low level control in this manner. It's even in the name, Supervisory Control and Data Acquisition... supervisory.
I absolutely shudder to think that you would ever have a signal called 'E-Stop' within a SCADA platform. Would it comply with any kind of safety guidelines? i.e. 4024, 62061, 61508... I'm confident it would not.
This logic really belongs within the field device.
The complexity of having both modifiable and inherited logic just doesn't seem worthwhile to me for ClearSCADA. If you need to have some standard logic, then you should separate this out into a logic library.
If you can't separate out your logic in such a manner, then how would you expect ClearSCADA to be able to do this automatically?
the logic above is for an alarm. not control logic.
Reply From User: BevanWeiss, posted: 2019-07-10 23:14:49
[at]geoffpatton said:
Bevan,
Yes you should not put anything critical to the local operation of devices in SCADA, but that FBD is just generating a general trouble alarm. It could be for email notification. For that very reason I have done something similar in a ST program using a Query. It checks the state of a Metadata grouped alarm field on a point. Then loops through the results to check the alarm state of the points with that field set. If any of them are in alarm then it and my timer of 10 minutes has been reached it sets an internal point to Alarm and and email is sent on just that alarm. My reason to do it was to give the operators the flexibility to move alarms between the grouped alarm and being individually redirected and an email sent. It also evaluates the reverse for off time of 5 minutes and a cleared alarm. The timers are also adjustable by the operators.
My solution is not prefect either. Running Queries in ST can be problematic, if they are large and run all the time they can cause performance problems by locking the Database to much so everything else has to wait.
Yeah, logic is often a necessary thing, but it definitely needs to be handled with care. We have a few customers with out of control logic (normally created by the customer themselves), which has been known to lock the DB longer than the redundancy heartbeat time... this then causes fun with the servers going Duty-Duty and the resultant problems this causes.
I don't believe there is a 'realisable solution' to the original posters request however. Whilst Block Chain is a cliche these days, it is not the solution to all problems. And it certainly doesn't help to determine whether an end user wants code to be pushed to all instances or not pushed to all instances. An example is:
An alarm function block is used (in a template), where in some instances certain inputs have their inputs inverted. The block is then modified, and all inputs are now considered as the opposite state. In the template the end user inverts all inputs by putting in NOT blocks.. what should happen in the instances?
Reply From User: geoffpatton, posted: 2019-07-11 02:51:29
[at]BevanWeiss
Good point.
What I implemented does allow me to add points at the instance level and they will be processed by the Query and anything added at the template level will go to all the instances. I used AlarmState also so the actual state did not matter. So that is probably the closest one can get to the OP's desired results for that particular example. When you think beyond just that example my solution would not fare to well.
I don't think that the FBD/ST functionality is suited to being modulerized.
Reply From User: adamwoodland, posted: 2019-07-11 22:24:16
There are various flowchats such as https://miro.medium.com/max/1400/1*eB110lfM62V4F7T3joJmlw[at]2x.jpeg which help guide decisions on if a blockchain is a good idea or not. Probably doesn't help here but interesting perhaps.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2019-11-06 11:10 PM
>>Responses imported from previous forum
Reply From User: hardin4019, posted: 2019-06-17 19:26:20
I assume that you had to add "Document Content" to the property overrides due to some instance of the template needing something that the template didn't provide for?
I have some rather large FBD's that are parts of templates that have been overridden so I can make minor changes for things like time zone, different number of meters, etc. So I have run into the same thing and agree it would be nice if there was a more seamless way to roll out changes from a template to instances that have been customized.
Reply From User: BevanWeiss, posted: 2019-06-18 12:07:40
I think that you're using ClearSCADA in the wrong way.
It's not intended to perform low level control in this manner. It's even in the name, Supervisory Control and Data Acquisition... supervisory.
I absolutely shudder to think that you would ever have a signal called 'E-Stop' within a SCADA platform. Would it comply with any kind of safety guidelines? i.e. 4024, 62061, 61508... I'm confident it would not.
This logic really belongs within the field device.
The complexity of having both modifiable and inherited logic just doesn't seem worthwhile to me for ClearSCADA. If you need to have some standard logic, then you should separate this out into a logic library.
If you can't separate out your logic in such a manner, then how would you expect ClearSCADA to be able to do this automatically?
Reply From User: geoffpatton, posted: 2019-06-19 15:43:45
Bevan,
Yes you should not put anything critical to the local operation of devices in SCADA, but that FBD is just generating a general trouble alarm. It could be for email notification. For that very reason I have done something similar in a ST program using a Query. It checks the state of a Metadata grouped alarm field on a point. Then loops through the results to check the alarm state of the points with that field set. If any of them are in alarm then it and my timer of 10 minutes has been reached it sets an internal point to Alarm and and email is sent on just that alarm. My reason to do it was to give the operators the flexibility to move alarms between the grouped alarm and being individually redirected and an email sent. It also evaluates the reverse for off time of 5 minutes and a cleared alarm. The timers are also adjustable by the operators.
My solution is not prefect either. Running Queries in ST can be problematic, if they are large and run all the time they can cause performance problems by locking the Database to much so everything else has to wait.
Reply From User: ROVSCADAENGINEER, posted: 2019-06-20 21:15:44
[at]BevanWeiss said:
I think that you're using ClearSCADA in the wrong way.
It's not intended to perform low level control in this manner. It's even in the name, Supervisory Control and Data Acquisition... supervisory.
I absolutely shudder to think that you would ever have a signal called 'E-Stop' within a SCADA platform. Would it comply with any kind of safety guidelines? i.e. 4024, 62061, 61508... I'm confident it would not.
This logic really belongs within the field device.
The complexity of having both modifiable and inherited logic just doesn't seem worthwhile to me for ClearSCADA. If you need to have some standard logic, then you should separate this out into a logic library.
If you can't separate out your logic in such a manner, then how would you expect ClearSCADA to be able to do this automatically?
the logic above is for an alarm. not control logic.
Reply From User: BevanWeiss, posted: 2019-07-10 23:14:49
[at]geoffpatton said:
Bevan,
Yes you should not put anything critical to the local operation of devices in SCADA, but that FBD is just generating a general trouble alarm. It could be for email notification. For that very reason I have done something similar in a ST program using a Query. It checks the state of a Metadata grouped alarm field on a point. Then loops through the results to check the alarm state of the points with that field set. If any of them are in alarm then it and my timer of 10 minutes has been reached it sets an internal point to Alarm and and email is sent on just that alarm. My reason to do it was to give the operators the flexibility to move alarms between the grouped alarm and being individually redirected and an email sent. It also evaluates the reverse for off time of 5 minutes and a cleared alarm. The timers are also adjustable by the operators.
My solution is not prefect either. Running Queries in ST can be problematic, if they are large and run all the time they can cause performance problems by locking the Database to much so everything else has to wait.
Yeah, logic is often a necessary thing, but it definitely needs to be handled with care. We have a few customers with out of control logic (normally created by the customer themselves), which has been known to lock the DB longer than the redundancy heartbeat time... this then causes fun with the servers going Duty-Duty and the resultant problems this causes.
I don't believe there is a 'realisable solution' to the original posters request however. Whilst Block Chain is a cliche these days, it is not the solution to all problems. And it certainly doesn't help to determine whether an end user wants code to be pushed to all instances or not pushed to all instances. An example is:
An alarm function block is used (in a template), where in some instances certain inputs have their inputs inverted. The block is then modified, and all inputs are now considered as the opposite state. In the template the end user inverts all inputs by putting in NOT blocks.. what should happen in the instances?
Reply From User: geoffpatton, posted: 2019-07-11 02:51:29
[at]BevanWeiss
Good point.
What I implemented does allow me to add points at the instance level and they will be processed by the Query and anything added at the template level will go to all the instances. I used AlarmState also so the actual state did not matter. So that is probably the closest one can get to the OP's desired results for that particular example. When you think beyond just that example my solution would not fare to well.
I don't think that the FBD/ST functionality is suited to being modulerized.
Reply From User: adamwoodland, posted: 2019-07-11 22:24:16
There are various flowchats such as https://miro.medium.com/max/1400/1*eB110lfM62V4F7T3joJmlw[at]2x.jpeg which help guide decisions on if a blockchain is a good idea or not. Probably doesn't help here but interesting perhaps.
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.