Forum Replies Created
-
AuthorPosts
-
oley
ParticipantHi,
My example isn’t made up: the energy exchange publishes prices for the entire next 24 hours. I already have tomorrow’s prices and am entering them into the database:
0:00-1:00 100
1:00-1:00 500
…
23:00-24:00 333Now I’m querying the database constantly, comparing the time to the current time, but the simplest solution would be to once enter data with future times into the channel.
I wouldn’t burden the system with queries, and I’d see future data in the table.oley
ParticipantHi,
I have a problem with my fallback trigger.
Would you look on my ACM config:https://ibb.co/yBhJM43w
https://ibb.co/WvFwRSDk
https://ibb.co/Q3PXKnSd
https://ibb.co/6Jt3jdJ4
https://ibb.co/Kc4hhQpf
https://ibb.co/5hY5GjqK
https://ibb.co/S7x3ny1w
https://ibb.co/gLMbVgHHLogs:
2026-03-21 11:00:00 Trigger state “PowerAdjustment\Limit_28 [280120]”: Delay before firing 1 sec
2026-03-21 11:00:00 Trigger state “PowerAdjustment\NoLimit_28 [280120]”: Waiting
2026-03-21 11:00:00 No trigger commands to send
2026-03-21 11:00:00 No trigger events to send
2026-03-21 11:00:00 Trigger state “PowerAdjustment\Limit_41 [410120]”: Delay before firing 1 sec
2026-03-21 11:00:01 Trigger state “PowerAdjustment\Limit_13 [130120]”: Firing
2026-03-21 11:00:01 Send command. Channel 132204
2026-03-21 11:00:01 Sending trigger commands completed
2026-03-21 11:00:01 Sending trigger events completed
2026-03-21 11:00:01 Trigger state “PowerAdjustment\Limit_28 [280120]”: Firing
2026-03-21 11:00:01 Send command. Channel 282202
2026-03-21 11:00:01 Command is enqueued to be sent at 11:05:01. Channel 281208
2026-03-21 11:00:01 Sending trigger commands completed
2026-03-21 11:00:01 Sending trigger events completed
2026-03-21 11:00:01 Trigger state “PowerAdjustment\Limit_41 [410120]”: Firing
2026-03-21 11:00:01 Send command. Channel 412204
2026-03-21 11:00:01 Sending trigger commands completed
2026-03-21 11:00:01 Sending trigger events completed
2026-03-21 11:05:01 Send command with a delay. Channel 281208My calculated channel:
public bool IsPowerNotLimited() { return DataRel(-100).Val > 10; }First command is sent: Send command with a delay. Channel 281208, but no reaction of the trigger on 281208.
-
This reply was modified 3 weeks ago by
oley.
oley
ParticipantSome update:
I used the same trigger with delayed command to this calculated channel.
Additionally I created another trigger for this calculated channel with two commands which control the switches. I have to test it in my environment.Channel script looks like:
public bool IsPowerNotLimited() { return DataRel(-100).Val > 10; }-
This reply was modified 3 weeks, 1 day ago by
oley.
oley
ParticipantI’m a bit stuck:
I created a trigger identical to the one I use to limit power, but with a 300-second delay.
The channel with the current power is channel 108.
I linked the command to a new channel (208) of type Output with the formula:IsPowerNotLimited() ? CmdVal : double.NaNpublic double IsPowerNotLimited() { var ret = DataRel(-100).Val > 10 ? 1 : 0; SetVal(CnlNum, ret); return ret; }If the value on channel 108 is > 10, I need to shut down the system by setting channels 802 and 803 to 1.
Do I need to create a trigger for changes to this new channel 208?
oley
ParticipantHi Mikhail,
I will try this.
Thanks!oley
ParticipantMy problem now is that now I become evens which looks like defined channel data event:
21/01/2026 07:07:13 PV TANGO TangoEventCode Defined, 311.000 21/01/2026 07:07:13 PV TANGO TangoEventCode Defined, 310.000 21/01/2026 07:07:13 PV TANGO TangoEventCode Defined, 271.000 21/01/2026 07:07:13 PV TANGO TangoEventCode Defined, 270.000But I create a proper description for my device event in the driver (event is simple code, but has its meaning).
Recent Events +---------------------+----------------+-------------------------------------+ | Timestamp | Tag | Description | +---------------------+----------------+-------------------------------------+ | 20/01/2026 19:08:04 | TangoEventCode | <strong>ODWZB. WE 31</strong> | +---------------------+----------------+-------------------------------------+ | 20/01/2026 19:08:04 | TangoEventCode | POB. WE 18 | +---------------------+----------------+-------------------------------------+ | 20/01/2026 19:08:04 | TangoEventCode | ZAMKNIĘCIE OPERACYJNE ŁĄCZNIKA 1 7 | +---------------------+----------------+-------------------------------------+ | 21/01/2026 07:07:13 | TangoEventCode | ODWZB. ZAB. f<2 | +---------------------+----------------+-------------------------------------+ | 21/01/2026 07:07:13 | TangoEventCode | POB. ZAB. f<2 0 -100270580 2 | +---------------------+----------------+-------------------------------------+ | 21/01/2026 07:07:13 | TangoEventCode | ODWZB. ZAB. f>2 | +---------------------+----------------+-------------------------------------+ | 21/01/2026 07:07:13 | TangoEventCode | POB. ZAB. f>2 0 -8.214282E+11 2 | +---------------------+----------------+-------------------------------------+I want to see the description in rapid scada event table, in column description. Is this possible?
oley
ParticipantHi,
is there a specification of the dat file format?
How to export complete historian data to csv?
Writing an importer to existing DB with ef.core will not be a problem.oley
ParticipantHi Mikhail,
I tried to do this similar to DrvSimulator.
internal static class TagCode { public const string TangoEventCode = nameof(TangoEventCode); }public static List<CnlPrototypeGroup> GetGroups() { List<CnlPrototypeGroup> groups = new List<CnlPrototypeGroup>(); CnlPrototypeGroup group = new CnlPrototypeGroup("Events"); group.AddCnlPrototype(TagCode.TangoEventCode, "TangoEvent"); groups.Add(group); return groups; }DeviceTag eventTag = null; if (DeviceTags != null) { eventTag = DeviceTags[TagCode.TangoEventCode]; } DeviceEvent devEvent = eventTag != null ? new DeviceEvent(eventTag) : new DeviceEvent(); devEvent.Timestamp = eventUtcTime; devEvent.CnlVal = code; devEvent.CnlStat = CnlStatusID.Defined; devEvent.Descr = descr; DeviceData.EnqueueEvent(devEvent);I have created a channel in Scada bound to TangoEventCode tag.
Now I become an event in web app, but this containsDefined, <code>not my description of the event.Do I need to create a channel in Scada? If I use this driver for all my devices I have to gave this tag unique name with device number coded or similar.
I want to see my generated event with the description I created for it.
oley
ParticipantHi Mikhail,
I take a look at RapidGate and another backup strategies.
The link to the English document does not work.
Would you provide a valid link?oley
ParticipantHi Mikhail,
I tried yesterday and have success with type 3. Channel value has changed.
Unfortunately (it’s not so bad) I need 2 triggers: switch opened and switch closed.
Type 2. Channel data has changed fires every time I’m uploading configuration, and another disadvantage: I can’t define range of channels.oley
ParticipantAnother approach that scales even better: EventTrigger.
I just set the channel and nothing else.
I connect the copied Notif command to the DrvHttpNotif device.
After changing the channel, an event appears, and in the ACM log I see:
2025-12-04 21:57:45 Send command. Device 200, command Notif
Unfortunately, nothing happens, silence in the DrvHttpNotif device log.
Any idea?oley
ParticipantHi Mikhail,
I was able to get it working with ACM and the phone book – I just need to use the Notif command.
Unfortunately, if I have Channel DataChange Trigger in ACM, it fires after every configuration upload.oley
ParticipantCan’t find any doc for this driver. Can you give me a link to this description?
oley
ParticipantHi Mikhail,
thank you. I can send an SMS from SCADA with simple “Request” command. It works.
Now I want to use it as notifier. So I have some contacts in the address book.
I have Channel Data Change Trigger in ACM.
How to connect this together? Command to device DrvHttpNotif? But how to access this address book?oley
ParticipantI made it work.
I created a proxy service that accepts POST requests and sends SMS messages with two-factor authentication based on them.
Since the request is in JSON format, I have to use [param] instead of {param} for the parameters.
The Headers tab probably refers to the response, because when I set Content-Type there, I kept getting the error: “Error creating request: Misused header name, ‘Content-Type’. Make sure request headers are used with HttpRequestMessage, response headers with HttpResponseMessage, and content headers with HttpContent objects.”I will send something like: {CnlName} on {EvDev} at {EvObj} changed value to {CnlVal}
I suppose this should be Channel Data Change Trigger and than Command with code “Request” to my Notifier device.
Now is the question: how to send SMS to a recipient from the address book? -
This reply was modified 3 weeks ago by
-
AuthorPosts