manjey73

Forum Replies Created

Viewing 15 posts - 676 through 690 (of 923 total)
  • Author
    Posts
  • in reply to: Entering Data Into A Table #7983
    manjey73
    Participant

    output channel – SetVal(43,Cmd)
    input channel 43 – Val(43) and in table “output channel” set 43, channel is Calculated

    in reply to: Transfer File from Computer to Rpi #7928
    manjey73
    Participant

    Only for the initial installation and migration of driver libraries, for example. Edit the Instance name and key for the Agent. Otherwise, the project is transferred using the Agent from Windows to Linux without problems.

    WinSCP and SSH connection are enough to copy and install files.

    in reply to: Continuing a calcuation after restart ? #7920
    manjey73
    Participant

    I do not know how advanced it is, it is better of course to use third-party applications for organizing RAM disk, which independently saves data to disk. Unlike tmpfs, as there are some limitations.

    For example var stuffed into tmpfs does not allow xrdp to run

    in reply to: Continuing a calcuation after restart ? #7917
    manjey73
    Participant

    1st input channel use the formula – LoadRet()

    Channels that require saving – Retain(Val(43))
    Retain(here there can be a formula that returns necessarily double)

    In the last channel, the formula – SaveRet()
    65535 use the formula – SaveRet()

    Any solution can lose value during a hard reboot, but if the variables do not change often, then you can use different options.

    • This reply was modified 5 years, 3 months ago by manjey73.
    in reply to: Continuing a calcuation after restart ? #7916
    manjey73
    Participant

    Retain Formula for writing a variable to a file retain.txt

    string pathRet = @"/opt/scada/ScadaServer/Config/retain.txt";
    Dictionary<int, double> DictRet = new Dictionary<int, double>();
    public double Retain (double ret)
    {
    DictRet[CnlNum] = ret;
    return ret;
    }

    Example of applying the formula in the input channel database. Retain(Val(150))
    The control channel can contain setval(150, Cmd)

    The lowest input channel uses the load_retain formula
    Recording in the loadret channel()

    bool initRet = false;
    double LoadRet()
    {
    if (!initRet)
    {
    
    if (System.IO.File.Exists(pathRet))
    {
    string[] RetLoad = System.IO.File.ReadAllLines(pathRet, Encoding.UTF8);
    for (int i = 0; i < RetLoad.Length; i++)
    {
    SetVal(Convert.ToInt32(RetLoad[i].Substring(RetLoad[i].IndexOf("[")+1, RetLoad[i].IndexOf(", ")-(RetLoad[i].IndexOf("[")+1)),10),Convert.ToDouble(RetLoad[i].Substring(RetLoad[i].IndexOf(", ")+2,RetLoad[i].IndexOf("]")-(RetLoad[i].IndexOf(", ")+2))));
    }
    initRet = true;
    }
    
    }
    return Convert.ToDouble(initRet);
    }

    Executed once at server startup

    The most recent channel uses the save_retain formula
    Entry in the saveret channel formula()

    double SaveRet()
    {
    string[] RetSave = new string[DictRet.Count];
    bool eq = false;
    for (int i = 0; i < DictRet.Count; i++)
    {
    RetSave[i] = Convert.ToString(System.Linq.Enumerable.ElementAt(DictRet, i));
    }
    
    if (!System.IO.File.Exists(pathRet))
    {
    System.IO.File.WriteAllLines(pathRet, RetSave, Encoding.UTF8);
    return 0;
    }
    else
    {
    string[] RetOld = System.IO.File.ReadAllLines(pathRet, Encoding.UTF8);
    eq = System.Linq.Enumerable.SequenceEqual(RetOld, RetSave);
    if (!eq)
    {
    System.IO.File.WriteAllLines(pathRet, RetSave, Encoding.UTF8);
    }
    }
    return Convert.ToDouble(eq);
    }

    The path to Raspberry specify your own in the first formula.
    An example file retain.txt

    [450, 23]
    [451, 51]
    [452, 51,5]
    [453, 46]

    The first digit is the channel number, the second is the channel value.
    The file is written when the variable specified as Retain is changed.
    You can also initialize the necessary variables when starting the server.

    For changing variables in the process of work, but which need to be saved, it is better to add probably another timer and record no more than x minutes. I think so.
    For configuration variables that rarely change, you can use as-is.

    in reply to: Continuing a calcuation after restart ? #7914
    manjey73
    Participant

    On Raspberry, I used formulas to save and read channel data to a file. Since the values fall into RAM (tmpfs)

    in reply to: modbus data after restart scada (historian trends) #7884
    manjey73
    Participant

    Насколько знаю, это доступно только пользовательским командам протокола, которых нет в драйвере. Так что не совсем ясен сам вопрос ?
    з.ы. а почему на английском сайте ?

    in reply to: HTTPS on Linux #7847
    manjey73
    Participant

    Redirection was enabled by the site owner on the apache stub page, so it shouldn’t happen by itself 🙂

    in reply to: HTTPS on Linux #7838
    manjey73
    Participant

    This means that when we open the root of the site, the Apache page should open and not jump to the internal site. It is not clear why this is happening ?

    in reply to: HTTPS on Linux #7828
    manjey73
    Participant

    Thank you, it works. But there are nuances 🙂 For example, if you write the root of the site mysite.com then there is a redirect from the apache page that should not be, is there any way to fix it ?

    http://mysite.com:8084/scada/Login.aspx

    I used port 8084. Michael needlessly removed the settings for mono-xsp4 from the installation description file for the mono version

    • This reply was modified 5 years, 3 months ago by manjey73.
    in reply to: Not Receiving Data from Request – Modbus #7795
    manjey73
    Participant

    Maybe the address is not 5 ? And this address is listed in the documentation as an example, if the device has an address of 5 ? Or maybe someone changed the address in the device ? The same baud, parity, bit depth ?

    in reply to: Not Receiving Data from Request – Modbus #7793
    manjey73
    Participant

    Changed it to Port 23 and no difference. ????

    You have a different port specified in the Ethernet settings-RS485 and it must be specified in the communication line settings. It is the one that is registered as Local Port Number and not 502 or 23 by default

    In this case, the Modbus device settings should be as for RTU mode-TransMode = RTU

    in reply to: Not Receiving Data from Request – Modbus #7781
    manjey73
    Participant

    Have you tried connecting to the device via USB-RS485 ?

    in reply to: Not Receiving Data from Request – Modbus #7775
    manjey73
    Participant

    Try reading just one register first and make sure they are readable. and only then add registers to the query group

    in reply to: Not Receiving Data from Request – Modbus #7774
    manjey73
    Participant

    1

    2

    3

Viewing 15 posts - 676 through 690 (of 923 total)