[Li...] Posted Monday at 07:56 PM Share Posted Monday at 07:56 PM I am working in Calypso 2025. I have a variable I created called u_Work_Order. I have enabled this parameter under Run and Measurement for my report header. I have also enabled Force Input at Start. A pop-up box appears right after the user hits run that asks them to enter in the WO. I would like to validate that the WO they entered is exactly 10 characters. I have been told I need to use PCM for this. I have tried creating my PCM program two different ways: first is by placing the code in a .txt file and then placing it in the root of the measurement plan program. I have also tried placing the code in the pre-settings with a global scope. I have tried every possible variation of code. Below are some I have tried. I always get an error like u_Work_Order is not defined or Temp_Variable is not defined. u_wo_number = "" repeat u_wo_number = inquireText("Please enter 10-digit WO Number") if len(u_wo_number) != 10 then message("Error: Must be 10 characters. You entered: ", len(u_wo_number)) endif until len(u_wo_number) == 10 u_wo_number = "" while len(u_wo_number) != 10 do u_wo_number = inquire( "Please enter 10-digit WO Number" ) if len(u_wo_number) != 10 then display( "Error: Must be 10 characters. You entered: ", len(u_wo_number) ) endif endwhile u_wo_number = "" while len(u_wo_number) != 10 do u_wo_number = inquireText("Please enter the 10-digit WO Number:") if len(u_wo_number) != 10 then message("Error: The WO number must be exactly 10 characters. You entered ", len(u_wo_number)) endif endwhile message("WO ", U_wo_number, " accepted. Starting measurement.") Link to comment Share on other sites More sharing options...
[Ri...] Posted yesterday at 02:31 PM Share Posted yesterday at 02:31 PM The not comparison is <> for PCM. Link to comment Share on other sites More sharing options...
[Ri...] Posted yesterday at 02:32 PM Share Posted yesterday at 02:32 PM Be careful with Repeat commands because you do not have a break condition, so it will run indefinitely. Link to comment Share on other sites More sharing options...
[DW...] Posted yesterday at 06:14 PM Share Posted yesterday at 06:14 PM (edited) Please sign in to view this username. GPT gives me this: wo = getRecordHead("u_Work_Order") IF STRLEN(wo) <> 10 THEN MESSAGE("WO must be exactly 10 characters.") STOP ENDIF Since the variable (wo) already exists ("u_Work_Order", entered manually at Run), you just need to validate it, not ask for it again. I do not have PCM to verify (might not be STOP, I think it is CNCBreak()?), but the logic makes sense. Been quite awhile since I have used PCM. From this core code, you can expand on it and enforce more rules (for instance, not allowing someone to just type '0000000000' 🤣) Edited yesterday at 06:17 PM Link to comment Share on other sites More sharing options...
[Ri...] Posted yesterday at 06:28 PM Share Posted yesterday at 06:28 PM endInspection() is better than cncBreak(). cncBreak will redlight the machine. There are cases though where cncBreak is the only thing that will stop a loop though. 1 Link to comment Share on other sites More sharing options...
[Ch...] Posted 9 hours ago Share Posted 9 hours ago you're definitely on the right path, just remember Calypso uses it's own version of small talk programming language. Your code appears right for python and similar languages, I haven't yet got GPT to spit out any useable smalltalk code for Calypso. I no longer have PCM access directly otherwise I would test it out for you. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in