The "Equal?" function will compare the entire strings. What you are probably trying to do is test whether the first character of the serial read string is a "P". However, LabVIEW does not have a character data type. To do this comparison, use the "String Subset" function to return a string of length 1 starting at offset 0. Then compare this subset with "P".
If Jim's readiang is correct, you may also want to concider using the "Match Pattern" combined with a "greter or equal to zero". This will let you know that the "P" was found and where.
Don't forget to look for hidden characters like line feed and carrage return. You can see these characters by right clicking on the string object and sliding to slash codes display.
That means that an error occured somewhere in a subVI. In order to know where it happened, you can can look at the "source" string; and to know what the error type is, you can look at the "code" number. Also, right-click anywhere on the error cluster and choose "explain error" to see a dialog that will give you more information and a suggestion.
It's a time-out error. Seems like the timer doesn't stop in the Read Serial Port with Timeout vi. I receive the correct number of bytes and get the green check mark then the green check turns to the red X after the time-out value is reached. I need some way to reset the timer when the number of bytes received is reached. Any ideas. I'm attaching my modified Vi.