zzz

Forum Replies Created

Viewing 15 posts - 136 through 150 (of 165 total)
  • Author
    Posts
  • in reply to: about SCADA V6 #8585
    zzz
    Participant

    Sql version control tools: https://dbmstools.com/categories/version-control-tools/postgresql

    • This reply was modified 4 years, 6 months ago by zzz.
    in reply to: about SCADA V6 #8583
    zzz
    Participant

    However, I know one guy ported configuration database to PostgreSQL and integrated it with the existing Agent service to upload projects to Rapid SCADA runtime.

    That sounds very helpful, especially for data analysis in my project.
    I’ve seen SQL script in the repositories for schema initalization.
    Many python Flask projects do so. It’t not at uncommon.

    It seems a trend that many enterprise choose to employ BI system for business logic analysis and process optimization. They cost a lot and are more powerful.
    External RDBMS will make it so easy to integrate with existing project.
    The dat files are very efficient in performance, xml files are [fill in strong points here, I really can’t think of much], but they can’t be used with existing platforms.

    Another advantage, it’s much easier to manipulate in batch and validate with manual sql queries. In my current proejct, manually creating all the channels, lines, in the UI, is very tedious. Though they come in groups and share many similarity. Writing scripts to manipulate XML & validate relations directly, is much more work than doing it in a RDBMS workbanch tool.

    Maybe SQLite could be a portable local choice? I have a WinCE handheld project communicating with remote SQLServer and use local SQLite as config/info cache storage. The CRUD operations are identical. I am not familiar with C#4+. The desktop RDBMS driver can only do better I suppose.

    Pros:
    To modify multiple channels, it can be done with text editor supports regular expression on any pc. I have been modifying the InCnl.xml in text editor more than the administrator app.
    User may need to build many projects, or modify a project many times.

    If the config is a SQLite db, and you have a lightweighted RDBMS workbanch tool e.g. SQLWorkbanch/J. + SQLite driver. I bet you will list this as a Con point for XML.
    Plus it’s easier to search, validate data cross table with queries to ensure that they are consistent.

    in reply to: Silent server crash #8580
    zzz
    Participant

    Hi Mikhail,

    Just checking back to see if RS has any progress on this?
    This is preventing us from puting RS into serious use at scale.
    The instablity makes it infeasible for reliable sync at anything 1s sync rate.

    I mean adding a delay to a command in the module settings, not to request. If delay is added, commands are added to a queue instead of being sent directly. The queue should protect the server app from hanging.

    Just curious, is this queue per output channel, per communication-line, per rule or per module?

    in reply to: Silent server crash #8138
    zzz
    Participant

    @MikHail: I have sent you the img via email. Unless someone has some not-yet-blocked less-known image hosting to recommend. I’v nowhere public to upload img.


    @123abc56
    : You may be right about the racing condition. But anyhow, I guess we need that current data table at that moment to inspect the problem. Too bad I didn’t snapshot that file.

    in reply to: Silent server crash #8135
    zzz
    Participant

    Not that I don’t want to provide, but all file hosting service here require registration with cellphone which is now required by law, almost all foreign free img hosting are blocked.

    in reply to: Silent server crash #8119
    zzz
    Participant

    > How often does the problem occur?
    Can’t say, sometimes it run fine for days w/o problem. Maybe could continue if not restarted? Sometimes it dies silently hours after restart.

    Yesterday moring, I found it stopped working around 01/19/23:30, about 6 hours after a restart. I can’t find the log anymore, it’s been overwritten. But everytime the server is restart after the silent death, it always give the ThreadAbortException message like shown in the above logs.

    I suspect some of the values in the channels got AutoControl crazy.
    Every time I restart the ServerSrv w/ autocontrol disabled, I have to wait for the communicator to fully work. Or the next restsart with ServerSrv w/ autocontrol enabled, will usually fail. Pity, I just thought about this, can’t find snapshot of those values anymore. The archive is at 30 secs interval.
    Mybe this could be an option for some troubleshoot feature to save a snapshot of current values.

    Could you shad some light, how could autocontrol module block the server thread processing communicator communiations?

    > What is your scenario of using Auto Control Module?
    – Sync data from sensor bus line to PLC bus lines.
    – Unified control for process metrics.
    – Execution of control message from production system.

    AutoControl Rules

    
    <TrGroup active="true" name="F14">
        <Trigger id="9" active="true" name="F14 WtReached" type="CnlDataTrigger">
            <CnlDataTriggerProps>
                <CnlNum>11410</CnlNum>
                <ChkCnlVal>true</ChkCnlVal>
                <CnlValCond>
                    <CompareOperator1>GreaterThan</CompareOperator1>
                    <CompareArgument1>905</CompareArgument1>
                    <LogicalOperator>None</LogicalOperator>
                    <CompareOperator2>LessThan</CompareOperator2>
                    <CompareArgument2>0</CompareArgument2>
                </CnlValCond>
                <Deadband>0</Deadband>
                <ChkCnlStat>false</ChkCnlStat>
                <CnlStat />
                <Delay>0</Delay>
                <Repeat>1</Repeat>
                <RepeatCnt>2</RepeatCnt>
            </CnlDataTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>4</CmdNum>
                    <CtrlCnlNum>1405</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>1</CmdVal>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="3" active="true" name="Reset MCounter & MES CtrlBits On PreStart" type="EvTrigger">
            <EvTriggerProps>
                <ChkObjNum>false</ChkObjNum>
                <ObjNum>2</ObjNum>
                <ChkKPNum>false</ChkKPNum>
                <KPNum>114</KPNum>
                <ChkParamID>false</ChkParamID>
                <ParamID>0</ParamID>
                <ChkCnlNum>true</ChkCnlNum>
                <CnlNum>11404</CnlNum>
                <ChkNewCnlVal>true</ChkNewCnlVal>
                <NewCnlValCond>
                    <CompareOperator1>Equal</CompareOperator1>
                    <CompareArgument1>1</CompareArgument1>
                    <LogicalOperator>None</LogicalOperator>
                    <CompareOperator2>LessThan</CompareOperator2>
                    <CompareArgument2>0</CompareArgument2>
                </NewCnlValCond>
                <ChkCnlStat>false</ChkCnlStat>
                <NewCnlStat>0</NewCnlStat>
                <DescrCompareOper>None</DescrCompareOper>
                <Descr />
                <DataCompareOper>None</DataCompareOper>
                <Data>1</Data>
            </EvTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1401</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>1</CmdVal>
                </Command>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1402</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>0</CmdVal>
                </Command>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1403</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>0</CmdVal>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="16" active="true" name="F14 Flow" type="CnlDataTrigger">
            <CnlDataTriggerProps>
                <CnlNum>1403</CnlNum>
                <ChkCnlVal>true</ChkCnlVal>
                <CnlValCond>
                    <CompareOperator1>LessThan</CompareOperator1>
                    <CompareArgument1>*00</CompareArgument1>
                    <LogicalOperator>None</LogicalOperator>
                    <CompareOperator2>LessThan</CompareOperator2>
                    <CompareArgument2>0</CompareArgument2>
                </CnlValCond>
                <Deadband>1</Deadband>
                <ChkCnlStat>false</ChkCnlStat>
                <CnlStat />
                <Delay>60</Delay>
                <Repeat>0</Repeat>
                <RepeatCnt>0</RepeatCnt>
            </CnlDataTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1403</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>9</CmdVal>
                </Command>
                <Command cmdTypeID="1">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1404</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <EditMode>Str</EditMode>
                    <CmdDataStr>Flow overlimit</CmdDataStr>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="18" active="true" name="F14 Temp" type="CnlDataTrigger">
            <CnlDataTriggerProps>
                <CnlNum>1407</CnlNum>
                <ChkCnlVal>true</ChkCnlVal>
                <CnlValCond>
                    <CompareOperator1>LessThan</CompareOperator1>
                    <CompareArgument1>*00</CompareArgument1>
                    <LogicalOperator>Or</LogicalOperator>
                    <CompareOperator2>GreaterThan</CompareOperator2>
                    <CompareArgument2>*00</CompareArgument2>
                </CnlValCond>
                <Deadband>1</Deadband>
                <ChkCnlStat>false</ChkCnlStat>
                <CnlStat />
                <Delay>60</Delay>
                <Repeat>0</Repeat>
                <RepeatCnt>0</RepeatCnt>
            </CnlDataTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1403</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>9</CmdVal>
                </Command>
                <Command cmdTypeID="1">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1404</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <EditMode>Str</EditMode>
                    <CmdDataStr>Temp over limit</CmdDataStr>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="19" active="true" name="F14 Temp2" type="CnlDataTrigger">
            <CnlDataTriggerProps>
                <CnlNum>1406</CnlNum>
                <ChkCnlVal>true</ChkCnlVal>
                <CnlValCond>
                    <CompareOperator1>LessThan</CompareOperator1>
                    <CompareArgument1>*0</CompareArgument1>
                    <LogicalOperator>Or</LogicalOperator>
                    <CompareOperator2>GreaterThan</CompareOperator2>
                    <CompareArgument2>*0</CompareArgument2>
                </CnlValCond>
                <Deadband>1</Deadband>
                <ChkCnlStat>false</ChkCnlStat>
                <CnlStat />
                <Delay>60</Delay>
                <Repeat>0</Repeat>
                <RepeatCnt>0</RepeatCnt>
            </CnlDataTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1403</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>9</CmdVal>
                </Command>
                <Command cmdTypeID="1">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1404</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <EditMode>Str</EditMode>
                    <CmdDataStr>Temp2 over limit</CmdDataStr>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="21" active="true" name="F14 PH3" type="CnlDataTrigger">
            <CnlDataTriggerProps>
                <CnlNum>1402</CnlNum>
                <ChkCnlVal>true</ChkCnlVal>
                <CnlValCond>
                    <CompareOperator1>LessThan</CompareOperator1>
                    <CompareArgument1>6</CompareArgument1>
                    <LogicalOperator>None</LogicalOperator>
                    <CompareOperator2>LessThan</CompareOperator2>
                    <CompareArgument2>0</CompareArgument2>
                </CnlValCond>
                <Deadband>0</Deadband>
                <ChkCnlStat>false</ChkCnlStat>
                <CnlStat />
                <Delay>90</Delay>
                <Repeat>0</Repeat>
                <RepeatCnt>0</RepeatCnt>
            </CnlDataTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1403</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <CmdVal>9</CmdVal>
                </Command>
                <Command cmdTypeID="1">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1404</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>false</CopyCmdVal>
                    <EditMode>Str</EditMode>
                    <CmdDataStr>PH3 over limit</CmdDataStr>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="5" active="true" name="F14 MCnt Sync" type="CnlDataChangeTrigger">
            <CnlDataChangeTriggerProps>
                <CnlNum>1410</CnlNum>
            </CnlDataChangeTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>1402</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>true</CopyCmdVal>
                    <CmdVal>0</CmdVal>
                </Command>
            </Commands>
        </Trigger>
        <Trigger id="14" active="true" name="CCuMix AccWt Sync" type="CnlDataChangeTrigger">
            <CnlDataChangeTriggerProps>
                <CnlNum>19001</CnlNum>
            </CnlDataChangeTriggerProps>
            <Commands>
                <Command cmdTypeID="0">
                    <KPNum>0</KPNum>
                    <CmdNum>1</CmdNum>
                    <CtrlCnlNum>9001</CtrlCnlNum>
                    <UserID>0</UserID>
                    <Delay>0</Delay>
                    <SendOnFiring>true</SendOnFiring>
                    <SendOnNorm>false</SendOnNorm>
                    <CopyCmdVal>true</CopyCmdVal>
                    <CmdVal>0</CmdVal>
                </Command>
            </Commands>
        </Trigger>
    </TrGroup>
    
    in reply to: RSAdmin: Browsing Archive is only locally. #7940
    zzz
    Participant

    It’s this error.
    The exact word is Browsing archive is available only locally

    in reply to: RSAdmin: Browsing Archive is only locally. #7885
    zzz
    Participant

    sigh, takes some fiddling…

    Solution:
    Creating an Empty project and download server profile. Then the events under Server>Archive becomes available again.

    Loading the old project, also choose download profile won’t solved the problem for old project. Comparing the path settings in UIs mentioned above, show no difference.

    in reply to: Rising Event with user defined Event type #7881
    zzz
    Participant

    As said previously, I tried both CalcReal and Real for

    
    – In Generator, set a data point channel=60000, value=200, state=1, Nothing happend
    – In Generator, set a data point channel=60000, value=200, state=200 Nothing happend
    

    .

    Previous to this test case,
    I have a calculated channel configured similarly. as SomeFormula(CnlVal);Val()>905? 200:1
    The customized event type id=200, color=green.
    I can see the numbers turn to green in WebStation table number display.
    But the event type trigger in Auto Control is never fired.
    Since I can’t open the any log under Server/Archive/ from RSAdmin,
    I was unable to verify if the event has fired.
    But the test case involving Generator seems to suggest AutoControl didn’t pick up customized eventtype.

    in reply to: RSAdmin: Browsing Archive is only locally. #7879
    zzz
    Participant

    I am not sure where to upload the screenshot to.
    But no particular log, all logs under server\archive\*, The notifce is the same as in remote RSAdmin.

    • This reply was modified 4 years, 9 months ago by zzz.
    zzz
    Participant

    What is the format of this database, SQLite ?

    in reply to: RSAdmin: Browsing Archive is only locally. #7872
    zzz
    Participant

    iirc, this happens after I tried to connect to server with a remote rsadmin setup. I copied the local project folder to remote machine and did some modificatino on the remote admin. After I realized the remote ones cant access the log, I abandoned the remote admin. (well, this may be irrelevant, I have no idea.)

    • This reply was modified 4 years, 9 months ago by zzz.
    in reply to: Rising Event with user defined Event type #7870
    zzz
    Participant

    Tried CnlVal; CnlVal>10?200:1 with both Calculated Real and Real none worked for the previously mentioned latter 2 cases.

    • This reply was modified 4 years, 9 months ago by zzz.
    in reply to: RSAdmin: Browsing Archive is only locally. #7869
    zzz
    Participant

    PS:
    Instance>Server>Common Parameters>Directories also have the right path.
    Plus, clicking the Browse Button on the above two locations opens the folder dialog, in which the specified folder is automatically located in the folder tree correctly.

    in reply to: Rising Event with user defined Event type #7868
    zzz
    Participant

    This is a Calcuated channel. Not sure why can’t Val() be used?

Viewing 15 posts - 136 through 150 (of 165 total)