MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

131 Excellent


About kaare_t

  • Rank
    Propeller Head

Contact Methods

  • ICQ 0

Profile Information

  • Country Norway

Recent Profile Visitors

6091 profile views
  1. BMOV block1 block2 n using labels & arrays

    I see. Labels are good, and a nice way to structure your code (in my personal opinion). The "problem" with indexing labels is that it needs to be an array. So basically, all your stored recipes must be in an array. I've always used labels so I really don't think of it as a problem. See attached pictures for an example. I've defined two global labels that are essential. The "original recipe" (moving data from this), and the "recipeArray" (this is the collection of all your recipes stored - it's an array of strings - a total of 12 strings/recipes). I've also attached a small code that shows how to use it in two different ways - it's a very small example but I hope it shows the principal. Let us know if this works for your. There are other options available. I've used labels since I started writing PLC code, since I'm from Norway we early adopted the IEC development style and we don't like to use addresses directly in the code (for a lot of reasons....). So there's almost always a solution using labels in my opinion.  
  2. BMOV block1 block2 n using labels & arrays

    I'm still a bit in the dark about what you want to accomplish, not sure if I fully understood your problem but here is some pointers to begin with (maybe you already know about these): Is it a challenge because you don't know how to set the index? Is it a challenge because the index is coming from the HMI? Because the index will point to exactly the device you want to. If it helps, you can use a more direct indexing: Assign a value to one of the built-in indexing variables, e.g. Z1 (MOV index Z1). Then use BMOV D300 D425Z1 K5. This will move D300-D304 into (D425 + valueofindex). For example if Z1 = 0, then it will move into D425. If Z1 = 5 it will move into D430 and so on. Regarding assigning devices to an array, if you are using labels (which it seems like you are since you're referring to labelnames), then you define arrays in the label editor. Just select "Array" in DataType and select the number of elements in the array (can also be modified later by just editing the values inside the "()"). If the above is totally off, and not helping you at all, then I have some questions that might help me understand your issue: Are you using labels (names instead of direct addressing)? Are you using Ladder, or Structured Ladder/FBD (just wondering)? Are you using the built-in functions for recipe in the GOT HMI? Do you have any scripts being executed from the GOT HMI to the PLC when selecting recipes (how do you know which recipe is selected in the PLC)?
  3. BMOV block1 block2 n using labels & arrays

    Hi, and welcome! First of all it always helps to know the CPU type (FX/Q/iQF/iQR or similar), and the software used for your code. I've given some pointers below based on a more general approach. I'm not sure I fully understood your data structure, but would it help to use stringmove instead of BMOV ($MOV)? Then you create an array of strings to replace "myList"? You can loop through your 12 recipes and just use for example: Define recipeArray as an array of strings (recipeArray[0..11] Datatype:String(12)) $MOV myString recipeArray[index] This procedure can also be achieved if you absolutely want to use BMOV instead of stringmove. Just use two-dimensional arrays for your "destination": Define recipeArray as a two-dimensional array of words (recipeArray[0..4,0..11] Datatype:INT) BMOV myString recipeArray[0,index] In both examples above you will of course need a FOR-NEXT loop or a similar form of going through all the original recipes, but it looks like you've got that handled already since you're already into indexing your destination array.
  4. Hello. Comments are not normally downloaded to the CPU. All code is compiled, so FB's are normally a logical view of the code. So if you have no correct source code, or backup of source code then you basically have two options: Upload the latest source code from the CPU, and start adding comments to that (FB's and/or structured ladder will be lost) Use the latest available source code from your computer, and modify it the way it was supposed to be
  5. Connecting 2 HMI to 1 FX3 PLC

    OK, my guess is that it's doable but as mentioned I've never done it on GOT's before. The "issue" so to speak is that they do not get their own "channel" each down to the CPU. I remember doing this on Beijer HMI's using a special purpose data transfer protocol for intercommunication between HMI's. This is not a very clean solution since basically all data were transferred to the first HMI, then buffered and sent to the next HMI. Since it's serial, there is no way to open up additional "sockets" so they will never communicate with the CPU at the same time in any way. Also, if GOT #1 breaks down, GOT #2 will have it's comm link broken and stop working. As you might guess, my opinion is that this is not a very good solution. All in all, it's a little bit messy solution. I would guess that GOT's also have this possibility, but I cannot confirm it as I have never tested it. But in any way: Have you considered to add an Ethernet module to the FX3U PLC? That way both HMI's (plus possible other peripheral devices) could connect directly to the CPU and you wouldn't need all the extra fuzz... Alternatively, just add (if available slots) a BD card (RS422 or RS232) for the extra HMI. In both of these cases there will be instant access to data from both HMI's, if one breaks down the other one still function, and the setup and system will be a lot more clean (in my opinion).
  6. Connecting 2 HMI to 1 FX3 PLC

    I've never done this on GOT's before, so I cannot answer if it will work (hopefully someone else will know). However, have you thought about distance? RS232 only goes 15m, so basically you want to have less than 15m between GOT #1 and GOT #2? And again, which FX3 do you have?
  7. Connecting 2 HMI to 1 FX3 PLC

    There's no problem connecting two HMI's to a single PLC, but I have some questions. Which RS232 port are you referring to? The FX3G and FX3U doesn't have built-in RS232 ports, do you have an extension board? And which FX3 do you have specifically?
  8. 3rd Party Q Series Intelligent Device Modules

    Thanks for the update, and don't hesitate to post again if you run into any issues
  9. Using two PWM function

    Did you try, as a test, to set static values in s1/s2 on both PWM? Just as a test to make sure nothing is wrong with min/max limits regarding your variable inputs...
  10. It depends. If your "only" talking about 5 FX systems to start with, this is not a problem at all. One single R system kan utilize 4096 IO alone. It all depends on what you want to do in the R system - as an example; do you want to just collect data from all the FX and trigger alarms based on simple logic then you can go with a "small" R (just simple alarm-codes for each alarm bit in the FX). However, if you want to "control" the whole factory and use the FX more or less as remote IO stations, where the R is executing the complete code then you should consider a CPU with higher capacity. And in any way; if you hit the roof with one CPU, just install another R system in a CCLinkIE Control ring network. If you need to have the "pyramid structure" (one master to rule them all), then install 2 additional R systems (to a total of 3 R systems), where 2 of the R's are collecting data from all the FX systems, and the third R system is collecting data from the 2 R systems. Basically there's really no real limitation.
  11. Using two PWM function

    Not possible with your unit, see manual:
  12. Using two PWM function

    What PLC are you using? Which outputs are you trying to activate?
  13. FX5U built in RS485 data received unstable

    Sounds like noise problem, given that you are 100% sure that the bit-settings (databit/stopbit/parity) is correct. Try as a test to lower the transmission speed. I'm not aware of any issues with the FX5 and would guess a cable or setting issue... What is your peripheral device communicating with the FX5?
  14. 3rd Party Q Series Intelligent Device Modules

    Regarding the number of I/O points, it refers to the maximum number of "I/O" (Inputs/Outputs), so 32 inputs and 32 outputs is the same as 32 I/O. That's not why you cannot get it to work though, but it's best to set it correct straight away. I think you should try to download the few lines of code to the PLC, just in case there's some initialization being done when transferred to the buffer memories. Try it, just as a test.
  15. 3rd Party Q Series Intelligent Device Modules

    Hi and welcome as a poster! I have never used the module you are referring to, nor have I used S-Link, but according to the manual there's a little configuration needed to get the module working. I found a manual here: https://www3.panasonic.biz/ac/na_download/fasys/sensor/wiresaving/manual/sl-vmel-q_e.pdf?f_cd=3121 To your setup: First of all, it is a standard intelligent module with 32 I/O points (not 64 like you've used). It doesn't matter for the config you have, but it's best to set it correct straight away. Secondly, if you can read/write to the buffer memories then you're probably "almost there" (I would guess). The manual gives a small example in page 18, a bit of ladder code -> try that first. It also looks like you can configure some bus settings and/or node settings from page 23 in the manual, but I haven't read it in detail. As mentioned, I've never used S-Link or this module before, I just read quickly through the manual for the module and I'm referring to that. What does the inputs say? Does X0 (or in your case X60) turn on ("Unit Ready")? Is X1 (or in your case X61) turn on ("BUSY" - it means the module is booting or in config mode)? Does any of the error inputs go high (X10-X16 - or in your case X70-X76)?