oley

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 62 total)
  • Author
    Posts
  • in reply to: Entering future data #17789
    oley
    Participant

    Hi,

    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 333

    Now 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.

    in reply to: Delayed control sequence #17774
    oley
    Participant

    Hi,

    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/gLMbVgHH

    Logs:

    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 281208

    My calculated channel:

    https://ibb.co/DPZFRTTG

    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.
    in reply to: Delayed control sequence #17769
    oley
    Participant

    Some 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.
    in reply to: Delayed control sequence #17767
    oley
    Participant

    I’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.NaN

    public 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?

    in reply to: Delayed control sequence #17766
    oley
    Participant

    Hi Mikhail,

    I will try this.
    Thanks!

    in reply to: Custom modbus driver #17590
    oley
    Participant

    My 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.000		
    

    But 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?

    in reply to: Transfer historical data to DB #17589
    oley
    Participant

    Hi,

    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.

    in reply to: Custom modbus driver #17584
    oley
    Participant

    Hi 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 contains Defined, <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.

    in reply to: rapidgate #17503
    oley
    Participant

    Hi 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?

    in reply to: Events and Limits #17382
    oley
    Participant

    Hi 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.

    in reply to: SMS with two factor authentification #17377
    oley
    Participant

    Another 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?

    in reply to: SMS with two factor authentification #17376
    oley
    Participant

    Hi 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.

    in reply to: SMS with two factor authentification #17375
    oley
    Participant

    Can’t find any doc for this driver. Can you give me a link to this description?

    in reply to: SMS with two factor authentification #17373
    oley
    Participant

    Hi 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?

    in reply to: SMS with two factor authentification #17366
    oley
    Participant

    I 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?

Viewing 15 posts - 1 through 15 (of 62 total)