This article describes some causes of the “PLC-499: Error code 0x0001 returned from PLC” error message when using a C-more HMI to communicate with a Do-more BRX PLC using the “AutomationDirect Do-more Ethernet Symbolic Addressing (Full Memory)” protocol. I hope it helps you find what is causing the error message in your case.
The Help file for the C-more Programming Software says the error code 0x01 means “Unknown Command”, and can be caused by a requested tag not existing in the PLC or misspelled in the C-more, or the max string length for a String tag being incorrect. The root causes I’ve come across confirm this description, but I’ll add that size and type mismatches can also cause trouble for elements other than strings.
Isolating The Root Cause
If the error message does not make it obvious what the problem is (and it probably doesn’t), you’ll have to isolate the problem.
I was getting the “PLC-499: Error code 0x0001 returned from PLC” displayed on the C-More screen when opening a specific screen. This would typically indicate an object on this screen was causing the error. But which one?
One method to isolate the problem is to make a backup copy of the program, then delete objects from the problem screen until the error message goes away, transferring the program to the C-more and testing at each step, of course. If the screen contains many intelligent objects, consider using the binary search method of repeatedly deleting half of the remaining objects and testing until the error message is resolved, then restore the project and focus on the last range of objects that were deleted, again deleting half of those objects.
Beware. In my case, the cause was not on the problem screen itself but on the screen used as the source for a Popup Window Frame object. A tag used on the popup’s source screen was invalid.
Data Type Mismatch
In another case, I was getting “PLC-499: Error code 0x0001 returned from PLC” displayed on the C-More screen when pressing the ENT key on a numeric keypad. The keypad was configured with a tag to enter values into a Do-more V register (Unsigned Word) with Data Type set to SI16 (Signed Word). A mismatch. Modifying the tag to use a D register (Signed Double Word) with Data Type set to SI32 resolved the error message. In hindsight, I could have just corrected the Data Type to UI16 and kept the V register on a recreated C-more tag since I did not need to capture negative values.
String Length Mismatch
The “PLC-499: Error code 0x0001 returned from PLC” message can also occur if you create a tag in C-More linked to a string address in the PLC and there is a mismatch in character length. Always specify 64 characters when creating a tag in C-More that is linked to a short string (SSxxx) in a Do-More PLC, and 256 characters when creating a tag linked to a long string (SLxx). When modifying a C-more tag to correct a mismatch, the Address field on the Tag Name dialog should display the correct number of characters, for example, [64]SS100. For user-created string variables, match the length specified in the C-more tag to the length of the string as it was created in Do-more Designer (PLC > Memory Configuration > Memory Blocks).
Radio Button Set By Word Tag
I was getting “PLC-499: Error code 0x0001 returned from PLC” displayed on the C-More screen when pressing buttons on a Radio Button object. The Radio Button object had “Set by Word Tag” property selected for “Tag Assignment”. Modifying the tag specified for Tag Setting on the Radio Button dialog to use a Signed Double-Word (SI32) type of address instead of an Unsigned Word address resolved the error message. I don’t quite understand this one, since “Set by Word Tag” is described as using “bit of word” with up to 16 buttons allowed, which an Unsigned Word address should be able to handle. Maybe I had something else wrong and unknowingly fixed it when recreating the tag.
Truncation of Long Variable Names
Like my first example, I was getting “PLC-499: Error code 0x0001 returned from PLC” displayed on the C-More screen when opening a particular screen. The used on this screen were imported, so there were no misspellings.
The tags were for elements of a Do-more user-created data block named iMadeThisLongVar, so the elements of the datablock were iMadeThisLongVar0, iMadeThisLongVar1, iMadeThisLongVar2, etc. While the block name, (iMadeThisLongVar) is within the 16-character limit, the elements (iMadeThisLongVar0, etc.) are not. The elements work without issue within the PLC program but I’m guessing their names get truncated to 16 characters by the C-more when communicating with the PLC. The PLC does not recognize the truncated address, which causes the error message.
Shortening the datablock name in the Do-More software to NotSoLongVar and re-adding or reimporting the elements in the C-More Programming Software resolves the error message. Be careful that the variable name, including the highest element number you will use on the C-more, is under the 16-character limit. For example, if specifying a block size of 256 for NotSoLongVar, you want to make sure “NotSoLongVar255” is not more than 16 characters.
CTRLfreak.io is not affiliated with AutomationDirect, manufacturer of C-more HMI panels and Do-more/BRX PLCs.
Hey there! I simply wish to offer you a big thumbs up for your great information you
have right here on this post. I will be coming back to your blog for more soon.