Strange "Scan From String" to Timestamp Error

hi,
i am trying to parse my time-string into a Time Stamp with "Scan From String" but i get some strange Error(1).
The Code:
The Error:
can anyone confirm? do i have an error in my parser-string?
is it possibly related to this Bug
461196
Scan From String VI returns Error 1 with "%t" as the format string input
http://www.ni.com/product-documentation/52151/en/
that should be fixed?
my labview version is
LV 2014 Service Pack 1 -- Version 14.0.1 (32bit)
with the RealTime addon (but the code in question was not run on RT)
thanks for your time.
Solved!
Go to Solution.

Why do you have the square brackets around the scan from string format string? They are not there when you generate the timestamp string so it will fail when trying to convert it back as they are expected to be there.
Certified LabVIEW Architect, Certified TestStand Developer
NI Days (and A&DF): 2010, 2011, 2013, 2014
NI Week: 2012, 2014
Knowledgeable in all things Giant Tetris and WebSockets

Similar Messages

  • "scan from string" to timestamp doesn't work for 18:00:00 (6PM)

    I just found a strange issue in LabVIEW.  I hope I'm doing something silly, but I just may have found an unusual bug.
    run the snippet below with the following for the input string: 03:00:00,18:00:00,17:00:00
    Time converts fine for just about any other time EXCEPT 18:00:00 (6 PM) for which it is returned as 00:00:00 (midnight). If you even add a second to it (18:00:01) you get back the expected result.
    Here's hoping I'm not loosing my mind
    Matt Holt
    Certified LabVIEW Architect
    Solved!
    Go to Solution.
    Attachments:
    TimeParseBug.vi ‏11 KB

    As annoying as it may seem, this exact scenario is an abuse of the timestamp. A timestamp is meant to be used for absolute times. And that includes a date. As Ravens Fan already pointed out, the 0 seconds since January 1, 1904 GMT is used in all timestamp display routines to mean the canonical invalid timestamp and hence the timestamp control displays the default string indicating the actual date/time format rather than a specific date/time.
    If you need an absolute timestamp, for instance because you do want to have a local time indication, although the date is not relevant, adding an offset of 86400 to all values would fix it once and for all. Now the timezone offset can't cause the timestamp to reach 0 ever, even if you reside west of GMT, and it will be fine (until you start to do timestamp arithmetic that involves subtraction of relative timespans, then you would have to make the offset big enough that this will never get an issue). The current date would serve as a nice offset for that, which would be MattH's last suggestion. Nice to see that the Scan from String routine actually does use the passed in timestamp as default value and only replaces the values it is configured to parse.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Scan from string to timestamp not working

    Hi,
    I have a problem with the "Scan from string".
    The format string "%<%H:%M:%S%ds%bs%y>T"
    works for the input string "11:12:1322sJans2010"
    but doesn't work for the input string "11:12:1322sFebs2010"
    The only difference is the month (Jan or Feb). I got know idea why!
    Could anyone help me?
    Regards,
    Marcelo
    Attachments:
    dateString.vi ‏6 KB
    date.PNG ‏5 KB

    Both work for me in LabVIEW 2009; perhaps this was a bug in 8.6 that's been fixed?
    Also, is it possible your operating system is running a different language, in which Jan is the abbreviated form of January but February is something else?

  • Timestamp scan from string

    Hi All,
    A minor query about time stamps and scan from string. I needed to convert a string back to a timestamp and found the solution I needed at this post: Link
    I wanted to make it a little more programatic and noticed that when I assembled the formatting string it would not recognise the assembled output as a Timestamp - it outputted a double. The strings inputs are identical. The double precision output converted to a Timestamp to give the correct value - so I have a work around.
    I was just curious if this is a minor issue with LabVIEW or is this an intentional feature? Or is there some step I'm missing to coerce my output to a Timestamp.
    Thanks,
    Dave
    Solved!
    Go to Solution.

    I convert a string to a double represented as a timestamp. The strange is that it converts wrong, if I wire a 'NaN' to the default value. Look inside the code..
    (LabVIEW 2010 SP1)
    Attachments:
    Untitled 1.vi ‏10 KB

  • Scan from string error 85

    Hi Everybody,
    I'm trying to use LabView to
    process some data.  The data, although it was collected via labview,
    has been written out to csv file format.  I have been able to
    successfully open the file and use the search split string function to
    remove the "header" from the data stream.  Now I'm trying to parse the
    header to extract some pieces of the info that is there.  I'm trying to
    do this with the Scan from String VI.  
    So
    far I've been able to retrieve the Specimen ID from the first line of
    the header by setting the format string input of Scan from String as
    "Specimen ID ,%s", which works just fine.  Problem is, when I
    adjust
    the format string to include the next piece of data I want, I
    inevitably get an Error 85, which is a failed scan.  In fact, I
    get an err85 every time I try to extract something from after the
    second line.  I've attached a VI in which I cut and pasted an
    example header string in as a string constant and an example of how I'm
    trying to extract the values.  I've tried playing around with
    spaces and different formats, but get the err85 no matter what I do
    (unless I extract the first line).  I have a hunch that it has
    something to do with the EOL marker, but no idea how to work around it.
    A search of posts here show that a lot of people have issues with the
    scan from string vi, but nobody I could find had this exact
    problem.  I've also considered using the spreadsheet spring to
    array function, but because I have a mix of commas and EOLs it doesn't
    seem to work either. HELP! I really don't want to have to write this
    over in VBA/Excel.
    Thanks,
    Turk
    Message Edited by YoungTurk on 07-29-2005 10:36 AM
    Attachments:
    Scan.vi ‏12 KB

    You should probably parse it line by line (See attached, LabVIEW 7.1)..
    The attached example shows one possibility to get all the Items and values out. Not all values are strictly numeric so you would need to adapt the code a little bit. (This is just a very rough 1 minute draft).
    You might want to cosider to extract all values into a cluster for further processing, Have a look at the example  posted in this thread . It can be easily adapted to read the values in the proper format (DBL, I32, Date, String, etc.) depending on the item name.
    Good luck!
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    ScanMOD.vi ‏30 KB

  • Error 1 occurred at Scan From String (arg 1)

    I am communicating with the AT Trainer 5000 via serial port to USB converter.
    I installed all drivers of converter successfully and it is shown in MAX as com port. I also installed VISA software. 
    I am using labview 2013 version.
    When I connect the hardware to PC via usb to serial converter, try to run the program for seeing of real time graphs, I am receiving this error Error 1 occurred at Scan From String (arg 1) whereas there is no waveform shown in waveform chart. 
    Also read buffer didn't show an incoming data at read buffer.
    Other details for this error is
    Possible reason(s):
    LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
    Also pics of error is:
    Program is also attached. Please checked the also.
    Expert please help me how to get rid of this error.
    Attachments:
    Project.vi ‏23 KB

    Since you are using the termination character, you should not use the Bytes At Port property node.  Just set the number of bytes to read for the VISA Read to something really high (larger than what you expect in a single transmission).  The VISA Read will stop reading once the termination character is reached.
    Now, what is the format of the data coming from the instrument?  I see you are converting an ASCII Hex string into a number while trying to also turn it into a double.  That is likely why you are getting your error.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions

  • How do I avoid Error 85 in Scan From String scanning VISA read buffer?

    I have encountered an Error 85 with my Scan From String VI. I have a timed
    loop to read data from a device (flowmeter) using a serial port. This device takes
    periodic measurements and sends the reading which contains a numerical value to the serial port COM1. It cannot be read continuously, and the period
    between measurements may vary, so I decided a timed loop would be better than a while loop.
    The VI begins with VISA Configure Serial Port and then
    goes to a VISA Write which sends the message to the device to begin
    taking measurements. After this, the device usually says "TAKE FLOWMETER READINGS" to the terminal, thereafter only sending numbers. Then begins my timed loop containing VISA Read. I
    am taking the read buffer two places.
    First, I am taking it to an Array to Spreadsheet String with the
    Format String %.3f, as was in the Write to Text File example. Then I am
    using Concatenate Strings with this string and also a string containing
    the System Time. This string goes to Write to Text File, which I have
    configured using Open/Create/Replace File outside of the loop.
    Second, I am taking the read buffer to a waveform chart. I thought
    it would be a good idea to use Scan From String to convert the string
    into a DBL which I am then sending to the waveform
    chart.
    I am not sure if the initial "TAKE READINGS" message is giving me an error. I was able to get one reading saved to my text file from the device.
    Also the format string for my Scan From String is %.3f
    I am getting the Error 85 at the Scan From String only sometimes.
    When this happens, there is no data being written to the text file. But
    other times, I get data and it writes to the text file just fine (but
    rounds to nearest whole number).
    Any help would be greatly appreciated! This serial port device has been giving me a lot of trouble.

    Is this what you mean? Did I wire the shift registers correctly?
    I didn't know if you meant to Concatenate before Scan From String or Concantenate before or after VISA Read?
    Message Edited by YeungJohn on 11-20-2008 03:48 PM
    Message Edited by YeungJohn on 11-20-2008 03:49 PM
    Attachments:
    SerialShiftVI.JPG ‏87 KB

  • Error scan from string

    Hello, i have a problem with Labview 2013, on my  pc(where i make the  Vi from zero) work  verry  good, but when i put  the  Vi on  laptop with the same   version of labview, i get  error  from  scan from string. hardware part are not changed, why i get this error? this is my  VI.
    Attachments:
    Dc_motor_control2.vi ‏365 KB

    Put some probes or indicators to see what is being returned from the VISA Read.  It could be a simple synchronization error.  Try reading more bytes.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Interesting scan from string error

    Got an interesting (and hopefully easy) issue with scan from string. VI and back panel image attached. Open it or make it and try to run it and let me know if you get an error too. Am I doing anything wrong?
    (BTW, ignore the %d in the scan from string. You can change those to %f or %g and it still burps)
    Message Edited by mlang on 07-21-2008 09:04 AM
    Attachments:
    ScanFromStringError.JPG ‏27 KB
    ScanFromStringError.vi ‏14 KB

    "JB" <[email protected]> wrote in message
    news:[email protected]..
    > Wiebe@CARYA a écrit:
    > Try "%[^,],%d,%d,%d". %[^,] scans all characters that are not ",".With
    this unique format specifier for Format Into String and Scan from String, an
    error will appear if the input string contains a comma or is empty (the last
    case is also true with the original code). Distinct specifiers may be needed
    to avoid this.
    Yes, comma's might not be the best seperator. It will also fail if the
    numbers use "," as seperators (as is often the case in Europe)...
    But the same can be said for any seprator... If you use tabs as seperator,
    the parsing will fail if the string contains tabs...
    Regards,
    Wiebe.

  • Scan from string error

    when l test the function of scan from string. Why will have this error?

    The lesson here is that a %s does not know where to stop.  It will just take the rest of the string.  Using the %[^.] will grab a string up to a found period (not including the period).
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Please help, urgently Error 1 occurred at Scan From String (arg 1).

    I am communicating with the AT Trainer 5000 via serial port to USB converter.
    I installed all drivers of converter successfully and it is shown in MAX as com port. I also installed VISA software. 
    I am using labview 2013 version.
    When I connect the hardware to PC via usb to serial converter, try to run the program for seeing of real time graphs, I am receiving this error Error 1 occurred at Scan From String (arg 1) whereas there is no waveform shown in waveform chart. 
    Also read buffer didn't show an incoming data at read buffer.
    Other details for this error is
    Possible reason(s):
    LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
    Also pics of error is:
    Program is also attached. Please checked the also.
    Expert please help me how to get rid of this error.
    Attachments:
    Project.vi ‏23 KB

    duplicate post http://forums.ni.com/t5/Instrument-Control-GPIB-Serial/Error-1-occurred-at-Scan-From-String-arg-1/td...

  • Error 85 occurred at Scan From String

    Hi,
          Below is my attached Vi.. Its was kind of working randomly, cause the timing of this error "Error 85 occurred at Scan From String (arg1)" Pops out randomly. Hope someone can tell me roughly where is my mistake.. Thanks...
    Attachments:
    E-Start.vi ‏41 KB

    In your code, the function 'Scan From String' expects a string input that contains data in some specific (numeric) format.
    If its not the case, it gonna throw this error (85).
    You need to include additional code to handle this error in your program. While running your program, keep a probe at this input wire (string) and observe the data whenever you get this error (85).
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • Why am I getting error 85 from 'scan from string' VI?

    Data is in CSV format from an Excel spreadsheet. It may be an empty string but I compare the data to an empty string and, if is empty, then I input  the string constant '0' to the 'Scan from String' VI. I'm using 3 probes to try to debug this.
    The 1st probe is at the output of an 'Index Array' VI which extracts the element of interest from the array loaded from the spreadsheet file. The probe declares it's type as 'string' and the probe content is blank. I assumed that this means 'empty string'.
    The second probe is at the output of an 'Equal' VI which compares the data described above with the empty string constant "". The result is False. Why is this? How do I tell what the CSV data is? If the probe is blank can it be a Null character or NaN or is it interpretted as a blank string? The Excel file has all fields defined as 'text.
    The third probe is also blank.
    When the data is interpretted by the 'Scan from String' VI it fails. I also have the default pin wired to a double constant  with a value of o. Shouldn't this be used by the VI in the event the VI can't interpret the string passed to it? 
    Thanks for any help,
    Frank   

    fr@nk wrote:
    The second probe is at the output of an 'Equal' VI which compares the data described above with the empty string constant "". The result is False. Why is this? How do I tell what the CSV data is? If the probe is blank can it be a Null character or NaN or is it interpretted as a blank string? The Excel file has all fields defined as 'text.
    Yes, it can be a Null character. NaN is something else. To really see what's there you can place an indicator and then change the display mode of the string indicator to Hex Display Mode.
    You have not indicated what your format string is. Why don't you upload your code along with your data. Just out of curiosity, what are you using to read the file? Are you using Read From Spreadsheet File?

  • Scan From String White Space

    i all,
    I'm trying to use Scan From String in order to parse some data coming in from UDP. 
    Input String: ASCII [00 01 02 03 ... FF]
    What I want: s[00 .. 30]  d[12], d[34], d[56] leftover s[37 38 39 ... FF]
    ATTEMPT1
    Format String: %49s%2d%2d%2d
    What I get: s[00-09] RUNTIME ERROR!
    ATTEMPT2
    Format String: %49[^]%2d%2d%2d
    What I get: Only allows first output. Will error out if I use any additional outputs from Scan From String
    ATTEMPT3
    Format String: %49[^(0xFF)]%2d%2d%2d Value in () is ASCII character FF.
    What I get: s[00 .. 30] d[12], d[34], d[56] leftover s[37 38 39 ... FF]
    It appears as though when I use %##[^] it thinks I'm looking for the ENTIRE string so it will not let me add any more Formatting.  If I add a delimiter other than ^ it will run, and it will work presuming that character isn't within the first 49 characters... and I can't guarentee that it won't.
    I'm aware I can parse my string using subsets and whatnot... but Scan From String is so elegant.  It would be great if %S allowed for white space... or if $##[^] would simply take the first ## characters and allow me to Format after that.
    Is there a simple, elegant way to do this?  I wish my dataset was only 3-4 outputs. It'd be ideal if I could.  Thanks.
    Edit:
    It might be more helpful if I provide a less abstract example:
    I have an ASCII Header (Finite Length String), a Sender IP (Finite Length String), a Timestamp, a Message ID (Finite Length Decimal), A Message in ASCII ( '1' actually means 0x31, not 0x01)  And for some ungodly reason... no delimiters.
    So I was HOPING %##s%##s%<%H:%M:%s>t%##d   (With leftover string to be my message)  would work, but if any white space is contained within there... it messes up. 

    I cannot provide exact strings because the string is actually ASCII characters, most of which aren't displayable. 
    I have a string where I have:
    24 ASCII Characters representing 6x U32 Header Data
    13 ASCII characters represening the sender IP (string)
    12 ASCII Characters representing the name of the message (String)
    12 ASCII Characters representing 3x U32 Data
    12 ASCII Characters represneting the name of packet (String)
    12 ASCII Characters representing 12x U8 Data
    256 ASCII Characters represening 256x U8 Data
    etc...
    It would be ideal to simply Scan from the string and output the data with the appropriate data types already assigned instead of splitting string and type casting each individualy.  But if, for example, my header starts with an ASCII representation of a U32 of 2560(decimal) it would look like this:  [00][00][0A][00].  ASCII 0A is considered white space.  So my header would only contain 2 ASCII characters instead of the desired 24.

  • Wrong use of "Scan From String" function in a while loop?

    Hi,
    I've got a "Scan From String" function inside a while loop. On the first iteration it converts correctly the number passed by the input string (for example 4) But on the second one it has only spaces (one or more \s) as input string.
    I expected to obtain a zero as output (as it does always that it can not make any conversions, as I am supposed to) but indeed, i subtracts 1 from the previous number (according to the number indicated as example I would obtain a 3 as output)
    What's wrong with this?
    Does the function fails on this case?
    The rest of the diagram o the VI is expected to manage a 0 on that situation, like others in which the conversion is not made.
    Andres.

    I have simplified the VI evading calls to other VIs and trying to reproduce the mistake.
    The type of string I introduce to reproduce the mistake is:
    clock 3 (30) clock (40)
    Forgetting to introduce a number between the second "clock" and the following parenthesis, I would manage it programmatically with code that isn't included.
    Then "Scan From String" is supposed to do not make a conversion. But it leaves a 2 as output (in this example)
    I have realised, unbelievable but true, that it has matter with the number I substract to the output number (if it were 2, I would obtain 1 as output and so on)
    Excluding that, I got the conversion made before as output, 3, on the second time that "Scan From String" executes. But, how can this func
    tion as bad?
    I am using LV4 on an old PC. I have tried to reproduce it with LV6 and it works. But it isn't desirable for me, I would have to convert a lot of VIs and surely I will find a lot of errors due to the conversion (I have already tried)
    Attachments:
    EXTCLOCK.VI ‏26 KB

Maybe you are looking for