Developer Portal Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    Where to store large arrays of REAL data?

    Where to store large arrays of REAL data?

    maj9bj
    Long-established Member

    For our parts we measure some values during assembly cycle. Result of this measurement are 3 arrays [1..1200] of REAL values (eg. current, voltage, resistance). Our customer wants to save this data for every part that means 3600 values for every assebmly cycle.

    My question is how and were to store these data?

    I tried to add these arrays to PartProcessed > SendBody > Array and send it to MES. I only had to change send buffer size and library constant in TwinCAT and it works and all 3600 values are send.

    Then I was talking with colleague from MES team what is next step and he told me this.

    • The values cannot be processed in MES, bacuse in Array section he expects only arrays of standard ResultDataXXX structures. I do not want to use array of ResultRealData, because I do not need other information like limits, unit typ, process name and with usage of this structure the size of date will be much large.
    • MES database should not be used for storing of these big amount of data for every produced part. 

    Is there any other solution how to deal with that request?

    maj9bj_0-1661415607447.png

     

    6 REPLIES 6

    Rica
    Community Moderator
    Community Moderator

    Hi,

    A solution for your case would be save the result into “.dat” files then transmitting them to MES.

    I’ve never tried by myself but it surely works an it is widely used at Bosch Business Unit PS.

     

    On Control Plus Studio, you can set up a DataSetAccess for writing the desired data (in your case the result data) into “.dat” files.

    After all basic configuration is done, in TwinCat basically you write your result data to the "shadow data" (eg. ResultDataNew), then with the command "DATA_SAVE" the data will be applied to the active data set (eg.ResultData).

    The DataSetManager documentation has some reference code for that, please have a look.

     

    Once the results are saved into “.dat” files, there is a service that can be installed and configured on PLC that transfers “.dat” files to MES (As I don’t remember service name, I will not write here to avoid confusion. Please check with your MES colleague).

    I don't think it's a problem to save the data as .dat or .csv files.

    The problem is always how to get the data from the local hard disk to a server and archive it there for a long time...

    In the past there was a Cyclic Update service that could automatically move files from a station to a server path...

    maj9bj
    Long-established Member

    Thorsten you are absolutely right. Saving to files is something I do not want at all. I do not want to care about file trasfer, storage size and I also think this is not good for CFast card in our PLCs even though it is industrial with lot of write cycles.

    I am looking for some clean "network" solution. I do not understand why it cannot be processed in MES. I am able to succesfuly send XML to MES and I do not know, why they are not able to process it somehow.

    Do you know someone from MES, who is able to help us with this request?

    MarvinW
    Long-established Member

    Like you said, MES should be able to handle this. I suspect you haven't talked with the right MES engineer yet. Although maybe it really is the case that only the Result structs are convenient for them to handle but raw REAL arrays are not.

    In MES there is also a "curve data" feature or something like that which is meant exactly for this use-case: Just transmit a lot of plain data without much semantics or structure. But I have never seen it used anywhere, so maybe it was rather an idea only to have this feature and it never really matured.

    Good luck finding some support.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist