Calibration data in X Series EEPROM

[Thanks again to the NI engineers that have prepared the X Series support for the MHDDK. Your work is much appreciated!]
I've been reviewing the X Series DDK manual and example code to get a handle on how things work, and I have
a couple questions about the calibration data that's retrieved from the EEPROM via eepromHelper and how it is used.
1) There are 4 AI "modes" containing 4 coefficients. What do these modes refer to? Do they have anything to do with different
ground reference modes (DIFF, RSE, NRSE)? I noticed that eepromHelper::getAIScalingCoefficients() only uses the coefficients
for the first mode (mode 0) to compute the scaling coefficients for a given voltage range. Is that OK no matter which ground
reference mode my application employs?
2) There is one AO "mode" containing the usual 4 coefficients. The eepromHelper reads in this mode as well as the different
voltage interval (gain, offset) pairs, but it doesn't use the mode coefficients to compute the scaling coefficients for a given
interval as is done for AI and as is implied in the DDK reference manual on p. 2-18. Instead, scaling coefficients are simply
the gain (C1) and offset (C0) for the chose voltage interval. Is the mode not relevant in the case of AO?
Sincerely,
Scott
Solved!
Go to Solution.

Hi Scott,
The AI Modes do not correspond to different ground references, but rather just the configuration for the AI frontend. The EEPROM actually has more information than the device needs. Therefore, as you have mentioned only mode 0 is used, this is because the other modes are not used.
The AO mode also does not use all of the data in the EEPROM. In this case, unlike the third order polynomial fit that is used for AI, the AO is simply a linear fit. Therefore only the gain and offset are used.
Regards,
Chris T.
Applications Engineer
National Instruments

Similar Messages

  • PXI-4071 Calibration Date Update

    Is there a process to have the internal Calibration Date update [using the Cal Executive software] without running the adjustment-reverify routines?

    Hi sbdata,
    In general, unless an actual adjustment is performed, then the EEPROM is not written to and the calibration dates will remain the same. That said, if you open an external calibration and then close it, the calibrated date will be set to the current system time.
    Jeff Munn
    Applications Engineer
    National Instruments

  • NI ELVIS calibration data

    When I perform the self-calibration procedure* on my NI ELVIS workstations, where is the resulting calibration data stored? I found a file named %ProgramFiles%\National Instruments\NI ELVIS 2.0\NI ELVIS Cal.bin that contains "raw binary" data which I assume is some/all of the calibration data. Is this the file that contains all of the calibration data, or are there other locations (e.g., the Windows registry) where the Calibration Wizard stores the calibration data?
    * Windows Start menu » All Programs » National Instruments » NI ELVIS 2.0 » Calibration Wizard

    Hello,
    Some of the functions available with ELVIS is because to the circuitry inside the ELVIS unit.  These functions include the function generator and the power supplies.  When you calibrate either of these, the data is stored in EEPROM on the ELVIS unit.  Other functions, such as the DMM or oscilloscope, are performed by using the analog input channels of the DAQ card.  Therefore, if you calibrated these analog input channels the data would be stored on the EEPROM of the DAQ card.  The ELVIS calibration wizard, at least in NI ELVIS 3.0, only gives you the option to calibrate the functions that are available to calibrate on the ELVIS unit and not the DAQ card.   If you wish to calibrate your DAQ card you can do so, but in a different program.  I hope this answers your questions.  If any of this is unclear please let me know.
    Have a great day!
    Brian P.  -  Applications Engineer

  • I want to read calibration data from a file

    I have some calibration data from an experiment. There are 14 channels and the data is arranged in a spreadsheet 14 rows x 4 columns, where each column is a different constant from a best-fit equation of the form y = b1 + b2.x1 + b3.x2 + b4.x1.x2, per channel.
    I need to get the data into labview so that I can use it during an experiment. Can anyone recommend the best way to do this? I've tried the 'read from spreadsheet file.vi' but can't get it to work. Any recommendations or example code? Or do you think it is better to use a text file?
    Thanks
    Dave
    Solved!
    Go to Solution.

    They do. From the Help file:
    Reads a specified number of lines or rows from a numeric text file beginning at
    a specified character  ... can use this VI to read a spreadsheet file saved in text format.
    Note: The underlining is my emphasis. Still, I understand what you're saying, and as I said, it's been poorly named from the beginning. 

  • I pull fiftyfour bytes of data from MicroProcessor's EEPROM using serial port. It works fine. I then send a request for 512 bytes and my "read" goes into loop condition, no bytes are delivered and system is lost

    I pull fiftyfour bytes of data from MicroProcessor's EEPROM using serial port. It works fine. I then send a request for 512 bytes and my "read" goes into loop condition, no bytes are delivered and system is lost

    Hello,
    You mention that you send a string to the microprocessor that tells it how many bytes to send. Instead of requesting 512 bytes, try reading 10 times and only requesting about 50 bytes at a time.
    If that doesn�t help, try directly communicating with your microprocessor through HyperTerminal. If you are not on a Windows system, please let me know. Also, if you are using an NI serial board instead of your computer�s serial port, let me know.
    In Windows XP, go to Start, Programs, Accessories, Communications, and select HyperTerminal.
    Enter a name for the connection and click OK.
    In the next pop-up dialog, choose the COM port you are using to communicate with your device and click OK.
    In the final pop
    -up dialog, set the communication settings for communicating with your device.
    Type the same commands you sent through LabVIEW and observe if you can receive the first 54 bytes you mention. Also observe if data is returned from your 512 byte request or if HyperTerminal just waits.
    If you do not receive the 512 byte request through HyperTerminal, your microprocessor is unable to communicate with your computer at a low level. LabVIEW uses the same Windows DLLs as HyperTerminal for serial communication. Double check the instrument user manual for any additional information that may be necessary to communicate.
    Please let me know the results from the above test in HyperTerminal. We can then proceed from there.
    Grant M.
    National Instruments

  • Encoding problem while reading binary data from MQ-series

    Dear all,
    we are running on 7.0 and we have an encoding problem while reading binary data from MQ-series. Because we are getting flat strings from queue we use module "Plain2ML" (MessageTransformBean) for wrapping xml-elements around the incoming data.
    The MQ-Series-Server is using CCSID 850, which we configured in connection parameters in communication channel (both parameters for Queuemanager CCSID and also CCSID of target).If there are special characters in the message (which HEX-values differ from codepage to codepage) we get errors in our adapter while executing, please see stack-trace for further analysis below.
    It seems to us that
    1. method ByteToCharUTF8.convert() expects UTF-8 in binary data
    2. Both CCSID parameters are not used anyway in JMS-adapter
    How can we solve this problem without changing anything on MQ-site?
    Here is the stack-trace:
    Catching com.sap.aii.af.mp.module.ModuleException: Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
        at com.sap.aii.af.modules.trans.MessageTransformBean.throwModuleException(MessageTransformBean.java:453)
        at com.sap.aii.af.modules.trans.MessageTransformBean.process(MessageTransformBean.java:387)
        at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:103)
        at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:292)
        at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)
        at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:84)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ConvertBinaryToXiMessageFilter.filter(ConvertBinaryToXiMessageFilter.java:304)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ConvertJmsMessageToBinaryFilter.filter(ConvertJmsMessageToBinaryFilter.java:112)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:87)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:123)
        at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filter(TxManagerFilter.java:59)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.DynamicConfigurationFilter.filter(DynamicConfigurationFilter.java:72)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.PmiAgentFilter.filter(PmiAgentFilter.java:66)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.InboundCorrelationFilter.filter(InboundCorrelationFilter.java:60)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.JmsHeadersProfileFilter.filter(JmsHeadersProfileFilter.java:59)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageInvocationsFilter.filter(MessageInvocationsFilter.java:89)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.JarmMonitorFilter.filter(JarmMonitorFilter.java:57)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ThreadNamingFilter.filter(ThreadNamingFilter.java:62)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.SenderChannelImpl.doReceive(SenderChannelImpl.java:263)
        at com.sap.aii.adapter.jms.core.channel.ChannelImpl.receive(ChannelImpl.java:437)
        at com.sap.aii.adapter.jms.core.connector.MessageListenerImpl.onMessage(MessageListenerImpl.java:36)
        at com.ibm.mq.jms.MQMessageConsumer$FacadeMessageListener.onMessage(MQMessageConsumer.java:399)
        at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl$JmsProviderMessageListener.onMessage(JmsMessageConsumerImpl.java:904)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4249)
        at com.ibm.msg.client.wmq.v6.jms.internal.SessionAsyncHelper.run(SessionAsyncHelper.java:537)
        at java.lang.Thread.run(Thread.java:770)
    Caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
        at com.sap.aii.messaging.adapter.Conversion.service(Conversion.java:714)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:538)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:528)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:471)
        at com.sap.aii.af.modules.trans.MessageTransformBean.process(MessageTransformBean.java:364)
        ... 36 more
    Caused by: sun.io.MalformedInputException
        at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:270)
        at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:287)
        at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:337)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:223)
        at java.io.InputStreamReader.read(InputStreamReader.java:208)
        at java.io.BufferedReader.fill(BufferedReader.java:153)
        at java.io.BufferedReader.readLine(BufferedReader.java:316)
        at java.io.LineNumberReader.readLine(LineNumberReader.java:176)
        at com.sap.aii.messaging.adapter.Conversion.convertPlain2XML(Conversion.java:310)
        at com.sap.aii.messaging.adapter.Conversion.service(Conversion.java:709)
        ... 40 more
    Any ideas?
    Kind regards, Stefan

    Hi Stefan,
    for the first MTB now we are using only one parameter: Transform.ContentType = text/plain;charset="ISO-8859-1"
    The second MTB, which does the XML-Wrapping, is configured like this:
    Transform.Class = com.sap.aii.messaging.adapter.Conversion
    Transform.ContentType = application/xml
    xml.conversionType = SimplePlain2XML
    xml.fieldNames = value
    xml.fieldSeparator = §%zulu§%
    xml.processFieldNames = fromConfiguration
    xml.structureTitle = payload
    Both CCSID configuration parameters from the "Source"-Tab we've set to 850.
    Now, we don't get an error anymore - sun.io.malformedInputException - , but, unfortunately, now special character conversion succeeded (we need an "ß" and we get an ISO-HEX-E1 -> á).  E1 is (different from ISO) an "ß" in 850.
    Any ideas?

  • Signal express custom calibration data, where is it?

    I have a PXI 1042 rack with 4472 modules. I am using Signal exress 2011.
    I have setup with custom scaling for the channels (so that I can log in engineering units rather than volts).
    I have just replaced the disk and reinstalled everything. I have got everything working BUT...
    When I try to open a previous Setup file it no comes up with an error stating it cant find the calibration values!
    Is the custom scaling calibration data stored outside the Signal express setup file, if so where is it?
    Thanks
    mike

    Ok sorted.
    Refitted old disc with previous system on it. Ran  Measurement and Explorer and then exported the configuration data.
    Fitted new disk, imported configuratio data and all the scaling is restored.
    Useful lesson, I had always thought the scaling was held in the TDMS files but its in the .nce files from the measurment and Explorer.
    mike

  • Backup Nike + calibration data

    Is it possible to backup your Nike + data in case you have to do a ipod restore? I know that run data can be backed up on nike site but I am more concerned about calibration data. I just don't want to have to recalibrate after restore.

    Huzler. I don't know, But you could try the following. I haven't calibrated my Nike+ so I cannot be sure what you will see, but here goes......
    Enable your Nano for disk use. When it is mounted (on a Mac) open up the disk from the desktop and see if there are any files/folders that relate to Nike+ or Calibration....if so, copy them to your Mac and keep them safe. If you then need to restore, copy these files back.....it might work!!
    If you are rnnung a Win box, after enabling disk use, in my computer loacte your Nano and from the view menu select Show Hidden Files & Folders. Then look for the Nike+ or Calibration files as mentioned above.
    Good luck.
    Please post back if this works, it will be helpful to others.

  • Time / Date format in series section of a graph

    Hello,
    I am trying to use some data imported from excel in a graph, but when I set the series of the graph to a field that contains time data (hh:mm), it does not convert it properly.
    Is there a way to represent this time data on the y axis of the graph correctly.
    Ronan

    Hello Ayuba,
    There is something the team might want to check out. Time formatted excel imports are not displaying well.
    To simulate the issue
    create small table in Excel with column formatted as "time"
    Import and see the displayed value in the data source view. It's far from correct displayed time
    The only way you can do something about it is to set the drop down of the column to text and use Timevalue and text to transform to correct time.
    If you just display time in excel as "general" same issue occurs with the import.
    Regards
    StonyArc
    http://www.stonyarc.com http://www.xboxlivenation.com

  • Data in Time Series

    Hello,
    I want to check the data in my time series live cache in my planning area. What is the transaction to check ?
    Thank you
    Steve

    Hello Steve,
    Here are my answers:
    For Q1: No, I don't think it's because you are in the 10th month of the year. The package size (i.e. the number of rows in each package) and the number of packets depend on a few factors: a) how much data is in your planning area  b) on whether you implemented BADI /SAPAPO/SDP_EXTRACT c) the parameters that you placed in the "data records/calls" and "display extr. calls" fields.
    For Q2: It is included because key figures with units/currencies (e.g. amounts and currencies) do need UOM/BUOM/Currency information and that's why it is also part of the output. You can check what unit characteristic a certain KF uses in transaction RSD1.
    For Q3: Yes, you can but you need to do more than what I mentioned before. Here are some ways to do that:
    A) Generate an export datasource. If you are in SCM < 5.0, connect that to an InfoSource and then to a cube. If you are in SCM 5.0, connect that to an InfoCube using a transformation rule. You can then load data from the planning area to the InfoCube. After that, you can then use transaction /SAPAPO/RTSCUBE to load data from the cube to the PA.
    B) You can opt to create a custom ABAP that reads data from the DataSource, performs some processing and then write the data to target planning area using function module /SAPAPO/TS_DM_SET or the planning book BAPI.
    Hope this helps.

  • Master Data UDO & Numbering Series

    Hi experts,
    my question is simple: is it possible to assign a Numbering Series (created via "Numbering Series - Setup" menu) to a Master Data UDO, so to let me add a new record within UdoTable without specify "manually" the field "Code"?
    And, if this is possible, how can i do that?
    Last, but not least, is there a similar way to solve this problem?
    I am working with Business One v9.0 PL05.
    Thanks in advance.
    M.

    Hi Marco,
    Master Data UDO: no. Master Document UDO: yes.
    Personally, I'm using this query to do it:
    SELECT RIGHT('00000000' + CONVERT (varchar(32), ISNULL (MAX(Code), 0) + 1), 8) Code FROM [{0}] to get generically the next value.
    As you can see, the query takes the name of the UDO table as its single parameter. This is 3 lines of code then (which I have encapsulated in a function, Inside my fraamework) to get the correct value.
    Regards,
    Eric

  • How to create a formula that shows only the last date of a series of dates

    I have a report that shows a series of dates that 'notes' were created on a particular file. I want the report to only show the date of the last note that was created instead of showing all the dates. Ive tried using 'Maximum ()' which does not work.
    Any suggestions?

    Either order the dates in ascending order and place the date field in the group footer
    -or-
    order the dates on descending order and plade the date field in the group header.
    HTH,
    Jason

  • Sauvegarder calibration date/heure

    Bonjour,
    Pour le moment, j'ai mon programme qui fonctionne bien, je calibre mon capteur et j'enregistre les paramètres dans un fichier .ini. Jusque là pas de problème.
    Je voudrais lorsque j'enregistre que ça tienne compte de la date et l'heure a laquelle j'ai calibré, et de plus que lorsque je fait plusieurs calibrations que ça ne m'efface pas mon fichier .ini mais garde les données précédentes!!
    En gros que mes paramètres forme une petite base de données pour avoir une archive!!!
    Merci de votre aide 
    Résolu !
    Accéder à la solution.

    Bon pour le moment j'ai réussi à enregistrer la date et l'heure mais quand je visualise mon fichier.ini la date et l'heure sont erroné, ça me met que des zéros (voir piece jointe)
    Pièces jointes :
    Vérification Calibration.ini ‏1 KB

  • How to restore data of time series objects

    Dear All,
    I was checking functionality of report for Anchors
    /SAPAPO/DM_LC_ANCHORS_DELMANDT
    This deactivated all the planning areas by deleting time series objects. Hence the data lose.
    Could i get back the data?
    Regards,
    Vijay

    You can if you have a backup copy of time-series in an Infocube, then use the transaction /sapapo/tscube to copy back from the infocube into your planning area.
    Otherwise I am afraid you are stuck somewhat.
    Having looked at the coding, it seems that this report deletes ALL planning versions for the current client hence the reason why it deleted time series objects. You will need to Create another Planning version (via transaction /sapapo/mvm) then "Create Time Series Objects" for your Planning Area against this new planning version (via transaction /sapapo/msdp_admin). As I said, however, any time series objects will have been lost if you have no backup, this will only reinitialise the planning area.

  • How can I compare data to a series of values in a text box?

    I want to paste a series of asset numbers into a text area and use it to query the asset numbers column in a report to return only those assets whose asset number is in the text area any on know how to do that?

    If your text box contains the values concatenated by a string (: or ; or , or some other) you can use it in a query by replacing ':' with your concatenation string, similar to this example:
    SELECT empno, ename, job, mgr, sal
      FROM emp
    WHERE INSTR (':' || :p138_empno_textbox || ':', ':' || empno || ':') > 0Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

Maybe you are looking for

  • URL.openStream() works in Windows but not in Linux

    I am having a problem with this line: BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); in the code sample further below. A simple program using this line works when compiled in my Windows XP: java version "1.6.0_03" Ja

  • Messages Buddies window keeps changing size

    The buddies list in Messages keeps growing longer and longer for me. Is there a way to make it stay the size that I want it to be?

  • WLC and ISE

    Hello, I need to know what are the features I will lose for the wireless users, if I did not use a WLC deployment (Using autonomous AP), knowing that I'm using last code of ISE1.1.1. Also in case of no WLC, can I use Inline posture node or I have to

  • Factory reset option does not appear.

    First of all, sorry if this is not the correct section to post this thread. My problem is that, I want my Lenovo ThinkPad x200 (windows 7) to return to it's factory condition, now the thing is that, when I go to control panel -> System and Security -

  • Update of dynamic columns

    I have 3 tables: 1.     Transaction table – Customer table with columns A, B, C, D, E 2.     Temp table – exactly same as the Transaction table Temp_Customer with columns A, B, C, D, E 3.     Don’t Update fields table – Ref_Fields which has a column