Can I generate a DSC alarm based on the difference of two signals?

In the Tag Configuration Editor of the DSC module, you can set lower and upper limits on any signal (tag). This works well if the signal is expected to always be within a certain range. However, if the signal is expected to vary according to a predefined pattern, how can I detect when it passes out of the expected pattern? - In my case the problem is made easier since I have two signals I can monitor: a setpoint and an actual. Therefore I can calculate the difference between setpoint and actual and set an alarm if the difference exceeds some maximum value. However, the DSC tag configuration editor does not allow these kind of "derived channels".
One possible solution is to run LabVIEW code to mon
itor these signals in real time, continually calculate the difference and generate an error if the difference exceeds the limit I have set. The problem is there does not seem to be a way to programmatically generate a DSC alarm.
Another possible solution, but requiring more work, is to create my own VI-based server to monitor the derived channels. Then there would be two servers running - logos to acquire the FieldPoint data- and my VI based server to calculate the derived channels in real time. My question is: Is there an easier way to do this?

Hi Chris,
Go with your first proposed solution -- and write the result to a Discrete Memory tag. And set this tag to alarm on High. This will now act as your alarm tag.
Hope this helps.
Regards,
Khalid

Similar Messages

  • Can we control the PDF file name that is generated by BI Publisher based on the content in the input PDF

    can we control the PDF file name that is generated by BI Publisher based on the content in the input PDF?

    No, there isn't. The way you're using the file is not recommended. You
    should use a review tracker to avoid getting in the way of one another.

  • I have iphone 5 can i change it from apple and pay the difference bettween both value

    i have iphone 5 can i change it from apple and pay the difference bettween both value

    Ask your retailer.  At worst, you can sell your iPhone 5 independently (of Apple and your retailer) and separately purchase the later model.

  • Generating Supplier Liability Account based on the Supplier Classification

    Hi ,
    In R12 I have a custom requirement like follows. Need to generate the Supplier Liability Account based on the Supplier Classification. When we select supplier type then by default liabilty account value will be the value from supplier--> setup --> options --> fianancial otpions --> accounting tab (GL -accounts liability value).
    so when we change the supplier type the liability account should changed based on that classification value.
    I have code in 11i where custom.pll was modified to acheive this, but how to implement this in R12 as supplier form is OAF based.
    the code from custom.pll for this is
    procedure event(event_name varchar2)
    is
    lCurrBlock varchar2(30);
    lVendorType varchar2(30);
    lDefaultCCID number(15);
    lCustomCCID number(15);
    cursor customCC(x_vendor_type varchar2,x_default_cc_id number) is
                   select
                   cst.code_combination_id
                   from
                   fnd_lookup_values vty,
                   gl_code_combinations dfl,
                   gl_code_combinations cst
                   where 1=1
                   and vty.view_application_id = 201
                   and vty.lookup_type = 'VENDOR TYPE'
                   and vty.language = 'US'
                   and vty.lookup_code = x_vendor_type
                   and dfl.code_combination_id = x_default_cc_id
                   and dfl.segment1 = cst.segment1
                   and vty.tag = cst.segment2 --account no
                   and dfl.segment3 = cst.segment3
                   and dfl.segment4 = cst.segment4
                   and dfl.segment5 = cst.segment5
                   and (dfl.segment6 = cst.segment6 or (dfl.segment6 is null and cst.segment6 is null))
                   and (dfl.segment7 = cst.segment7 or (dfl.segment7 is null and cst.segment7 is null))
                   and (dfl.segment8 = cst.segment8 or (dfl.segment8 is null and cst.segment8 is null))
                   and (dfl.segment9 = cst.segment9 or (dfl.segment9 is null and cst.segment9 is null))
                   and (dfl.segment10 = cst.segment10 or (dfl.segment10 is null and cst.segment10 is null))
                   and (dfl.segment11 = cst.segment11 or (dfl.segment11 is null and cst.segment11 is null))
                   and (dfl.segment12 = cst.segment12 or (dfl.segment12 is null and cst.segment12 is null))
                   and (dfl.segment13 = cst.segment13 or (dfl.segment13 is null and cst.segment13 is null))
                   and (dfl.segment14 = cst.segment14 or (dfl.segment14 is null and cst.segment14 is null))
                   and (dfl.segment15 = cst.segment15 or (dfl.segment15 is null and cst.segment15 is null))
                   and (dfl.segment16 = cst.segment16 or (dfl.segment16 is null and cst.segment16 is null))
                   and (dfl.segment17 = cst.segment17 or (dfl.segment17 is null and cst.segment17 is null))
                   and (dfl.segment18 = cst.segment18 or (dfl.segment18 is null and cst.segment18 is null))
                   and (dfl.segment19 = cst.segment19 or (dfl.segment19 is null and cst.segment19 is null))
                   and (dfl.segment20 = cst.segment20 or (dfl.segment20 is null and cst.segment20 is null))
                   and (dfl.segment21 = cst.segment21 or (dfl.segment21 is null and cst.segment21 is null))
                   and (dfl.segment22 = cst.segment22 or (dfl.segment22 is null and cst.segment22 is null))
                   and (dfl.segment23 = cst.segment23 or (dfl.segment23 is null and cst.segment23 is null))
                   and (dfl.segment24 = cst.segment24 or (dfl.segment24 is null and cst.segment24 is null))
                   and (dfl.segment25 = cst.segment25 or (dfl.segment25 is null and cst.segment25 is null))
                   and (dfl.segment26 = cst.segment26 or (dfl.segment26 is null and cst.segment26 is null))
                   and (dfl.segment27 = cst.segment27 or (dfl.segment27 is null and cst.segment27 is null))
                   and (dfl.segment28 = cst.segment28 or (dfl.segment28 is null and cst.segment28 is null))
                   and (dfl.segment29 = cst.segment29 or (dfl.segment29 is null and cst.segment29 is null))
                   and (dfl.segment30 = cst.segment30 or (dfl.segment30 is null and cst.segment30 is null));
    begin
         if name_in('SYSTEM.CURRENT_FORM') != 'APXVDMVD' then
              return;
         end if;
         lCurrBlock := name_in('SYSTEM.CURSOR_BLOCK');
         if event_name = 'WHEN-NEW-FORM-INSTANCE' then
         --     app_item_property.set_property('VNDR.VENDOR_TYPE_DISP_MIR',required,property_true);
              copy(name_in('WORLD.ACCTS_PAY_CODE_COMBINATION_ID'),'GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID');
         elsif lCurrBlock = 'VNDR' and event_name in ('WHEN-VALIDATE-RECORD','WHEN-NEW-RECORD-INSTANCE') then
         open customCC(name_in('VNDR.VENDOR_TYPE_LOOKUP_CODE'),name_in('GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID'));
         fetch customCC into lCustomCCID;
         close customCC;
         if lCustomCCID is null then
              copy(name_in('GLOBAL.XX_APXVDMVD_ACCTS_PAY_CC_ID'),'WORLD.ACCTS_PAY_CODE_COMBINATION_ID');
         else
         copy(lCustomCCID,'WORLD.ACCTS_PAY_CODE_COMBINATION_ID');
         end if;
         end if;
    end;
    end;
    please help

    Hi,
    While you can refer to the SLA guide, for quick pointers what you need to do is:
    1. Identify the transaction types and associated events for that transaction.
    2. Build an accounting rule for the above.
    An example would be AP invoice validation or application of prepayments.
    The SLA guide provides step by step details on the above.
    Good Luck !!!
    Regards,
    Udit

  • How can I automatically scale a table based on the page size?

    I have multiple tables within 100s of pages of an InDesign file and when I use the liquid layout to scale the content of the pages based on the size, the tables stay the same. I've searched for a while now and can't come up with anything other than going in and manually doing it - which I don't have the time to do.

    You probably haven't activated the layout adaptation (I'm on german ID, don't know the correct name for it in English) in the mini menu of the Liquid Layout panel.

  • Can JMS Message be filtered dynamically based on the JMS Header variable

    Hi All,
    We have a requirement to filter messages from an MQ (Queue) using the JMS Adapter.
    There is only one subscriber to this Queue.
    Can we use the Message Selector option using the same subscriber to pick different messages based on the context set.
    For example I have two BPEL instances running for the same BPEL process and both of them have to read messages from the same MQ Queue, say SampleQueue.
    The first BPEL instance need to pick the messages when JMSpriority = 1
    The second BPEL instance should pick the messages when JMSpriority = 2
    Is this possible? As the Message Selector in the examples given is expecting a literal on the right side of the expression.
    Ex : Country='UK' Color='Green' etc
    To put the question in a different way, can the right side of the expression in a message selector be a BPEL variable?
    Thanks

    Hi
    I have the same question. Basically, I want to match my response message with the request message. I am putting in an id in JMSCOrrelationID in the request. The applciation that send the response put the COrrelationId, I sent into the JMSMessageId. But now, I want to correlate my request and response? What is the best way to do this in BPEL?
    Can the right side be a variable? I want to say JMSMessageID = 'ID: ' + JMSCorrelationId.

  • Generating a internal table based on the fieldcatalog

    hi,
    i want to generate an internal table based on field catalog which will be generated after the user has selected a particular layout.
    For eg. Suppose there are at present 25 fields at the ALV output and out of which user selects 10 fields using layout option and i save the layout.
    Now i want an internal table with these 10 fields in my internal table not all the 25 fields.
    any ideas?
    regards
    jignesh.

    Hi,
    Look at the sample code below.
    FIELD-SYMBOLS: <outtab> TYPE ANY TABLE,
          <l_line>  TYPE ANY,
          <l_field> TYPE ANY.
    DATA: new_table TYPE REF TO data.
    DATA: new_line  TYPE REF TO data.
    DATA: it_fieldcat TYPE lvc_t_fcat.
    DATA: wa_fieldcat TYPE lvc_s_fcat.
    DATA: BEGIN OF itab OCCURS 0,
          matnr TYPE matnr,
          aenam TYPE aenam,
          END OF itab.
    "Fill the fieldcat here
    "For example say it contains two fields MATNR AENAM
    CALL METHOD cl_alv_table_create=>create_dynamic_table
            EXPORTING
              it_fieldcatalog = it_fieldcat
            IMPORTING
              ep_table        = new_table.
    ASSIGN new_table->* TO <outtab>. "This is the required table
    CREATE DATA new_line LIKE LINE OF <outtab>.
    ASSIGN new_line->* TO <l_line> . "Work area forthe same
    SELECT matnr aenam UP TO 5 ROWS
    FROM mara
    INTO TABLE itab.
    LOOP AT itab.
      ASSIGN COMPONENT 'MATNR' OF STRUCTURE <l_line> TO <l_field>.
      <l_field> = itab-matnr.
      ASSIGN COMPONENT 'AENAM' OF STRUCTURE <l_line> TO <l_field>.
      <l_field> = itab-aenam.
      INSERT <l_line> INTO TABLE <outtab>.
    ENDLOOP.
    LOOP AT <outtab> ASSIGNING <l_line>.
      WRITE: / <l_line>.
    ENDLOOP.
    Regards,
    Manoj Kumar P

  • Provide Webservice  link not generating corresponding WSDL URL based on the service operation.

    Hi All,
    The provide webservice link is not generating corresponding WSDL URL based on Service Operation.
    E.g. Currently we have two service operations namely Create and Update. We are using Rowset based messaging. Provide Webservice link generated correct WSDL URL for the create operation but it is providing the same URL for Update operation as well. kindly share your knowledge if you guys ever faced similar problem.
    Regards
    Viswa

    Hi Hakan,
    Thanks for your reply. Actually i am trying to generate WSDL URLs for each service operation for Travel & Expense module like create expense, update expense etc.
    URL generated looks like this : http://xxx.xx.xxx.xx:8011/PSIGW/PeopleSoftServiceListeningConnector/HX_TE_EXPENSE_CLAIM.16.wsdl - this url is meant for CREATE operation. But for the UPDATE operation i am getting the same URL . Normally, Whenever i create WSDL URL for different operation the numeric part of the above URL changes like 16, 17 etc ..based on the service operation but no two operation have same URL like i am getting now. Please provide your knowledge on this issue.
    Regards
    Viswa

  • Can I Control Follow Up Transactions based on the Status ?

    Hi,
    I have created follow-up transaction (Quote) for main transaction Opportunity (this is custom defined transaction). I am able to create the follow-up transaction alright. However, now I would want to restrict the creation of follow up transaction based on the status of Opportunity. E.g if the Opportunity status is "Open" then I should not be able to create the follow-up transaction, wheras if the Opportunity status is "Won" then I should be able to create the follow-up transaction.
    Any help will be highly appreciated.
    Regards,
    Diptendu

    Write this restricting condition in COPY or OPPORT_H method of CRM_COPY_BADI. Raise an error message when status is not as desired which will stop the creation of follow up document. Do not forget to filter for transaction type i.e. process type. Also to make it exclusive for creation of follow up document (not code for copy control also), put some other condition checking docflow or something.

  • Is there an easy way to filter a 2-d array based on the values of two of the fields?

    Is there an easy way to filter a 2-d array based on the values of one of the fields. In my attached VI the output array has the following format:
    TimeStamp        Ident                Frame Type          Bytes    Data
    10:57:07.621   3AD00016   CAN Data Frame   8          0000000000000000
    10:57:07.622   3AD00017   CAN Data Frame   8          000005E000000000
    10:57:07.624   3AD00018   CAN Data Frame   8          0000000003300000
    10:57:07.625   2DC00000   CAN Data Frame   8          0000000000000000
    10:57:07.626   3AD00019   CAN Data Frame    4         0000030000000000
    I would like to delete any rows that do not have an "Ident" between the values of 3AD00000 and 3AD0001E. So for the above data the fourth row would be deleted. The only way I can see to do it is to form a 1-d array. Is there a better approach?
    Thank you.
    Solved!
    Go to Solution.
    Attachments:
    CMM_SN_MULTI.vi ‏20 KB

    Hi chuck72352,
    after you have sorted your data, you can use the InRange Function. Combined with a "search 1D Array" you'll get the range you really want.
    Mike
    Attachments:
    ArraySubset.PNG ‏25 KB

  • Can counter measure pulse width difference between two signals

    I am interested in determining the high pulse width time that two signals have when they are in various phases between eachother.

    Why don't you try one of the pulse width examples. I don't know what ADE you are using, but you can search for examples (http://www.ni.com/devzone/dev_exchange/ex_search.htm) with the key words "+pulse +width" and find several examples in different languages. This will measure the pulse width of one signal, but you can program most of the counters to do multiple tasks at the same time. Just copy the code twice and change the counter number to program counter 2 as well. If you want the ORed pulse width time, I would recommend adding a OR gate to your circuit and then feeding that into a counter.
    I hope this helps.
    Joshua

  • How can I create UI components dynamically based on the result of WebService/HttpService call?

    I would like to create child components of the component
    based on a XML which is retrieved by WebService/HttpService call.
    createChildren() is the one to be used to create components
    dynamically. But if I use createChildren() and call a
    WS/HttpService request in createChildren method, I can not get the
    result of WS/HttpService request in createChildren().
    It seems that the result event is processed later after
    createChildren() is completed.
    How can I implement my requirement?
    I would appreciate any pointer or suggestion.
    Best regards
    Masa

    1) Use a List, with a custom itemRenderer
    2) Use a Repeater (Probably easiest)
    3) use Actionscript to addChild() components.
    Tracy

  • How can I select and delete rows based on the value in one column?

    I searched through the discussion board, and found a thread on deleting blank rows, but not sure how to modify it to work with my issue.
    I have put together a rather complicated spreadsheet for designing control systems, it calculates parts needed based on check boxes selected in a second spreadsheet.
    Since not all systems require all parts there are many rows that have a 0 quantity value, I would like to select these rows and delete them once I have gone through the design phase (checking off required features on a separate sheet).
    I like the way the other thread I found will gather all the blank rows at the bottom without changing the order of the rows with data in them.
    I don't understand exactly how the formula in the other thread works well enough to modify it to look for a certain column.
    I hope I made myself clear enough here, to recap, I would like to sort the rows based on a zero value in one (quantity) column, move them (the zero quantity rows) to the bottom of the sheet, and then delete the rows with a zero quantity (I can delete them manually, but would like to automate the sorting part).
    Thanks for any help anyone can provide here.
    Danny

    I apologize but, as far as I know, Numbers wasn't designed by Ian Flemming.
    There is no "this column will be auto-destructing after two minutes"
    You will have to use your fingers to delete it.
    I wish to add a last comment :
    if your boss has the bad habit to look over your shoulder, it's time to find an other one.
    As I am really pig headed, it's what I did. I became my own boss so nobody looked over my shoulder.
    Yvan KOENIG (VALLAURIS, France) mercredi 13 juillet 2011 20:30:25
    iMac 21”5, i7, 2.8 GHz, 4 Gbytes, 1 Tbytes, mac OS X 10.6.8
    Please : Search for questions similar to your own before submitting them to the community
    To be the AW6 successor, iWork MUST integrate a TRUE DB, not a list organizer !

  • Can you get your IMEI # back based on the phone's serial #?

    My iPhone5 was stolen, and the police won't file a report without the IMEI #. I don't have the packaging anymore, and I never synched the phone with iTunes because my Laptop's OS was incompatible.  I managed to get the phone's serial number through the Apple Store.  Is there a way I can use that to get my IMEI # back?

    Do you still have the original box? All the pertinent information is on the back: IMEI, Serial # etc.

  • How can I dynamically reference a sheet based upon the contents of a cell

    I'm using Numbers to store specifications for various products. Each sheet stores specifications in a standard manner (i.e. same table and cell names) and the sheet is named according to the name of the product.
    On another sheet I've got a dropdown list containing the names of the product tabs. I'd like to dynamically pull data for a particular product when it's sheet is selected in the dropdown list by using the dropdown cell in a reference like:
    =B1::STC::A4, where B1 is the dropdown list and STC::A4 is the product specification table and cell reference.
    When I use this, the B1 reference fails.
    Any suggestions would be greatly appreciated.
    Thanks.

    Amos,
    you will have to use the indirect function to convert the string you are creating into a valid reference.
    Note:  The Sheet names, Table names and cell references must all match exacty.
    If the sheets are named "B1", "C1" and "D1" and the popup menu is in the cell A1 and contains the strings:
    B1
    C1
    D1
    The table name is "STC"
    then you can create a valid reference like this:
    = indirect(A1&"::STC::A4")
    if the table name were also dynamic and were stored in cell A2 you could create the reference like this:
    = indirect(A1&"::"&A2&"::A4")

Maybe you are looking for

  • Password not shown in asterisk

    I have a device with a problem: When i try to unlock the blackberry , the password is shown in clear letters not in asterisks. Even if typing in the right password, it doesnt get accepted. And it's asking me to type in "blackberry"

  • Robohelp 9 .properties file inserting non-printable characters @ export

    I have a mapped help file that I am generating for integration to an online application. When we export the .properties file from the Project Set-up pod, the mapped files appear to be fine, if viewed in Notepad (see below). However, when this is view

  • VGA Cable (Not Adapter)

    My iBook is used as a desktop machine, connected to an external 17" panel via the VGA adapter which Apple supply. The Apple VGA Adapter is only a couple of inches long and so you end up with an ugly VGA plug hanging down from the iBook. Does anyone k

  • Can you export a PDF to pages?

    Can a PDF document be changed into a pages document?

  • Built-in or open source AudioPlayer in Flex 4.5

    Is there an AudioPlayer, similar to VideoPlayer, that has built-in buttons (play, stop, pause, ...), progress bar, volumn control...?