Forum Replies Created

Viewing 15 posts - 1 through 15 (of 97 total)
  • Author
  • in reply to: How to show current date and time on scheme or dashboard #10879

    check the use formula box.
    set channel type to calculated real.
    set formate to date and time

    in reply to: Event Attributes #10878

    the alarms limit settings is only best for value alarms by threholds.

    for multiples states, e.g.
    00 is fine and safe. value =0
    01 is alarm and not safe. value =1
    10 is another alarm (break) and not safe to use. value = 2
    11 is critical alarm (leak and break). Value = 3

    create a “unit” in the “Units” table, e.g.
    name: mystates; sign: Safe;Not Safe;Break;Leak and Break

    for the input channel of state, set foramt to Enum text, check write event and event on change. leave the alarm settings empty.

    in reply to: Input channel (small bug) #10877

    Hi, I think it’s a feature related to modbus protocol.
    Each element group equals 1 modbus request command, which can only get upto 100 consecutive address.

    to add 30001, 30004, 30006, it can be done by adding 1 element group of read holding register (0x03) with starting elelment address 1 and elelment count of 6.
    when creating input channels, singals 1,4,6 can be used while singals 2,3,5 can be ignored.
    this is the fastest way because there will be only 1 modbus request.

    another way is to add 3 element gourps of read holding register (0x03) with starting address 1,4,6 respectively.
    this way is slower beacause there will be 3 requests.
    you will slao need to config the dalay between each requst in communication line settings.

    in reply to: Web API, REST API, version 6 #10326

    This will be very helpful API!

    Would you also consider an API that allow posting device data to scada?

    in reply to: Entering number from browser #10257

    You will need to create an extra output channel to do that.

    Create an output channel, maybe also use same channel number 112 as follow
    Command Type: Standard
    Formula Used: True
    Fomula: SetVal(112,Cmd)

    Button settings
    Action: Send command
    Input Channel: empty
    Output Channel: 112

    in reply to: Rapid SCADA 6 Beta #10248

    Any plan for PlgNotification?

    in reply to: Rapid SCADA 6 Beta #10044

    Installation and Basic Test:
    1. Installation on both Windows 10 and Ubuntu 20.04 Tested OK.
    2. A bug of WebApp not refreshing after switching between views on Firefox seems no longer there.

    A few suggestion For ScadaAdmin App:
    1. Make the search and replace function applicable for the enable (checkbox) fields.
    2. Is it possible to copy an array / list from excel and paste it to the ScadAdmin table? at least for the number and text field, such as channel name, formula.
    3. The linux pack no longer has ScadaAdmin. In v5 I can use mono to run ScadaAdmin GUI to modify settings and upload projects. Is there any features that allow user to at least upload a project from Linux desktop or command line?

    some know bug /limitation on v5 I am going to test.
    1. On V5 if the formula used channel exceed ~1.5k, the server will crash.
    2. On V5 if the reading of 1 device exceed ~4k, communicator will not be able send to to server.

    in reply to: Basic Scada Functions #9802

    I’m not sure if I understand you correctly. Do you mean create a template for 1 machine (with pictures, texts, buttons), then apply the template to multiple machine?

    Now there is no such function. I use a workaround for similar requirements.

    The scheme .sch file is actually XML file. I create 1 set of the machine manually, then write a script to edit the .sch file, copy and multiple the manually created one, and change x-y coordinates, input channels and etc…

    in reply to: Modbus Comm Bug #9720

    What does the following log mean? No reply within “Timeout” period or “Delay” period? Or socket throws an exception or receive an empty message?
    8. Receive (0 / 7):
    9. Communication error!

    I still get this error from time to time, even the communication line is connecting to a virtual device on localhost. Sometimes it never happened in months, sometimes it happened a few times in an hour.

    in reply to: How to make Led blinking #9712

    the trick is set two “ON” states for your led, and toggle between them.
    set a led with condition
    0; 1; 2 for silver; light green; green.

    assume you have multiple led, they should blink at the same time.

    step 1, defind a function in formula, which is the value of second of current time.
    double Second(DateTime dt){
    double en_dt = EncodeDate(dt);
    double s = Math.Truncate(en_dt * 24 * 60 * 60) % 60;
    return s;

    you can have 1 input channel for device status, e.g. Cnl 1001
    0; 1 for off; on

    then you setup an other channel for led, e.g. 1002,
    set formula

    then the value will toggle between 1 and 2 every second when the device is on, and remain 0 when the device is off.

    in reply to: Modbus Comm Bug #9709

    For error handling, in case any request and reply sequence get messed up, I am thinking the following approach.

    after the error of line 7 and 8, I would run and wait an additional loop of sock.recv() for a period (maybe same time of timeout), and then discard of all the data of this recv. in the above case, it would get line 12 and line 16 and so on.

    then send a new request of line 11, then the reply should be correct from now on.

    in reply to: 关于ScadaServer进程内存占用率过高的问题 #9708




    in reply to: Modbus Comm Bug #9707

    Hi Mikhail,

    Recently when I implementing a TCP protocol, I encounter a problem with similar symptoms of this Modbus issue.

    I am going to use the Modbus error as example. I label the following error message with line number.
    1. Request element group “ch1.011”
    2. Send (12): 05 42 00 00 00 06 01 03 04 4C 00 64
    3. Receive (7 / 7): 05 42 00 00 00 CB 01
    4. Receive (202 / 202): 03 C8 42 0A 8A 3D 42 0A E6 66 42 0B 41 89 42 0B 9C AC ….
    5. OK!
    6. Request element group “ch1.012”
    7. Send (12): 05 43 00 00 00 06 01 03 04 4C 00 64
    8. Receive (0 / 7):
    9. Communication error!
    10. Request element group “ch1.012”
    11. Send (12): 05 44 00 00 00 06 01 03 04 4C 00 64
    12. Receive (7 / 7): 05 43 00 00 00 CB 01
    13. Incorrect MBAP Header data!
    14. Request element group “ch1.012”
    15. Send (12): 05 45 00 00 00 06 01 03 04 4C 00 64
    16. Receive (7 / 7): 03 C8 42 IA FC EE 42
    17. Incorrect MBAP Header data!

    18. 2021-01-11 23:28:40 Disconnect from

    Line 7 sent a request(05 43) but did not get proper reply.
    Line 11 sent a new request(05 44). then line 12 receive data(05 43), but which is the reply of header of line 7 request(05 43). it was considered incorrect because it did not match with line 12 request.
    Line 15 sent a new request again. then line 16 receive data, which is the body of the reply of header of line 7 request(05 43). it was considered incorrect again because it did not match with line 12 request nor the header format.

    The reason I got this error is as follow. (I guess the Modbus driver may have similar issue but not sure).

    For such small amount of data, I assumed it will be always receive at 1 try.
    So I use sock.recv(7) to get header, then calculate the length of data from header, e.g. 0xCB = 203, the reset of data should be 203-1=202, then I use sock.recv(202) to get the rest of the data body.

    But I found very rarely, it will only get e.g. maybe 100 bytes of data on sock.recv(202) or 5 bytes on sock.recv(7). This will not only create 1 error of incomplete reply, but also messed up the following sequence.

    So I changed to use a while loop to receive data, to make I received the proper length of data. something like the sudo code below.

    recv_data = bytearray()
    while recv_data_length < expected_length:
    recv_data += sock.recv(expected_length-recv_data_length)

    in reply to: 关于ScadaServer进程内存占用率过高的问题 #9704


    28000点中,使用函数的有多少? 我以前测试的情况是超过12000点使用函数,scadasever会崩溃,后来版本更新,好像可以使用更多一些。



    in reply to: 报警里的 Undefined是什么意思 #9552


    1. 对应的Channel不勾选Event on undefined;
    2. Instance -> Server -> Saving parameters -> Unreliable on inactive 选择 disable, 或者根据需要设置1小时等长时间;
    3. 对应的Channel设置以下公式,如果返回值是nan,会保留上一轮的值而不更新返回的值。

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