Posted 16 Jun 2008 Is it possible to move literal text/string into memory? For example, to move a literal hex value one does this: MOV #41 H150 and that moves hex 0x41 ("A") into memory location H150. but I would like to do something like this: MOV$ "TEST" H150 How would one go about this? I am trying to avoid having to have four MOV commands using hex. Share this post Link to post Share on other sites
Posted 16 Jun 2008 Hi It depends which PLC you're using. A V4 CJ1/CS1 will allow string data types to store constant strings (in ST FBs) Fred:='Hello World'; CP1L and CP1H have V3 functionality, and don't allow this. It's a bit of a pain. I generally populate Data memory, and use the MOV$ instruction. Pp Share this post Link to post Share on other sites
Posted 16 Jun 2008 Assuming you are using a CJ/CS series CPU, have a look at the instruction reference manual: W340-E1-11 CS-CJ Instructions Reference Manual See section 3-12 for ASCII to HEX and reverse instructions and 3-33 for Text String Processing Instructions. Share this post Link to post Share on other sites
Posted 16 Jun 2008 I am using a CJ1M-CPU11 (and 12) Version 3.0. Does this present a problem? That is what I am trying to do: initially populate the data memory. Example: ON PLC Start do: set "MyTestSymbol" = "TextData" Share this post Link to post Share on other sites
Posted 16 Jun 2008 Each ASCII character requires 1 byte of memory, so you cannot store four characters in a single word. You don't need four MOV instructions, only two are required. In your example to load TEST into memory starting at H150":- MOV #5445 H150 MOV #5354 H151 Share this post Link to post Share on other sites
Posted 16 Jun 2008 ASCII_to_MOVL_converter.xls You can use MOVL to cut the number of Move's in half. Attached is an Excel sheet that will create and comment the ladder (in statement list) so you can copy / paste into CXP. Change the rung view to "Statement List" and then paste the created rung. Share this post Link to post Share on other sites
Posted 16 Jun 2008 (edited) Very nice, PMCR! Consider that 'borrowed'! Upto now, I've just typed away...but this relies on saving a *.mem file, and downloading it. I've been after a way to hard-code ASCII. Change the display to ASCII, and it's simple to initially populate D memory. Edited 16 Jun 2008 by ParaffinPower Share this post Link to post Share on other sites
Posted 16 Jun 2008 I have done a couple of jobs recently that required a lot of stored ASCII (PLC as serial slave). They were for OEMs, and I did not want to rely on loading ASCII from the mem file, so I wrote that Excel file to auto generate the ladder. Share this post Link to post Share on other sites
Posted 15 Aug 2008 Awsome PMCR That's a great tool. It would be nice if Omron added the ability to write a string directly to memory. Ex. COP $Hello World D0 Thanks Share this post Link to post Share on other sites
Posted 18 Oct 2021 I'm quite disgusted with the text string handling capability of Omron PLCs, I love the MOV$ command, but the fact that you can't just type text in quotes as immediate input for the instruction is annoying. You can use relative addressing with the command which is nice for selecting from a bank of messages, but you still have to pre-load your long strings in memory some other way. Share this post Link to post Share on other sites
Posted 18 Oct 2021 36 minutes ago, ZSC100 said: I'm quite disgusted with the text string handling capability of Omron PLCs, I love the MOV$ command, but the fact that you can't just type text in quotes as immediate input for the instruction is annoying. You can use relative addressing with the command which is nice for selecting from a bank of messages, but you still have to pre-load your long strings in memory some other way. While I agree it is a bit cumbersome many address-based PLCs don't have convenient string handling. The newer Omron PLC's (NJ/NX) allow for direct input of strings. Share this post Link to post Share on other sites