Duffanator

MrPLC Member
  • Content count

    180
  • Joined

  • Last visited

Everything posted by Duffanator

  1. RS232 Multiple Connections

    Or you could get a rocketport card for the computer. It goes to a breakout panel that has 10 additional com ports on it. We use these frequently with Accusort systems here. Probably the easiest way to add com ports, just pop in the card and install the drivers.
  2. Electric train shock

    I had just gotten that in an e-mail a few days ago, it's pretty amazing. You can tell it's in a country where no one understands electricity, it took ten or fifteen seconds before anyone even realized what had happened and then they all run away, they don't even try and help the guy (not that it would have made a difference) they just let him burn on top of the train. What was he doing up there in the first place?
  3. Calculating Downtime with Excel

    Thanks Bob, that works pretty well. I've never done any coding in Excel before, it's pretty interesting I didn't even know you could do that stuff. I appreciate your respose and your time. Thank you!
  4. Calculating Downtime with Excel

    Cool, thanks I appreciate it.
  5. FX3U error led blinking

    I've had a similar problem one time when the PLC was flashing a program error light. Every time I tried to download the program to see what the problem was it would crash Medoc (I haven't had this problem with GX Developer yet). Ended up being a corrupted PLC program memory, I loaded the program back into the CPU and then it was fine. If you have a copy of the program you may want to try that.
  6. Calculating Downtime with Excel

    Yeah, I know it's kinda weird. This also has to do with the spanning of the trend. When the on signal (basicly a contactor that pulls in to start the conveyor) goes high I log it as TT_Landing_On with a value of 1, when it goes low I log it as TT_Landing_Off and it has a value of 2. This is so that they can see on the trend what time it was started and what time it was stopped as spikes on the trend graph. It works great but when you span the graph out farther than a few hours Citect "edits" the data and instead of always getting values of 1 for on and 2 for off you can get .5 and 1 or other values depending on what Citect decides to do with it. The examples where it's both on and off at the same time are examples of when production starts and stops the conveyor very close to eachother, again, if I would span the trend to 15 minutes or something you would see a gap in the data but since it's spaned to 8 hours it seems to be at the same time. Everything is vary variable and depends greatly on how the trend is spaned with it is converted to the .CSV file. Thanks for the Macro Bob, I will try that and see if I can figure something out from there.
  7. Calculating Downtime with Excel

    Yes, the interval changes depending on how I have the trend spaned out (1 hour span, 4 hour span etc...) I did it this way because they wanted a visual representation when the conveyor was shut down and when it was started up. That spreadsheet is the result of exporting out of Citect into a .CSV file and then importing that into Excel. My goal was to have a templete that I could give to people so that when they are looking at the graph they can take how ever many days worth of info and import it into the templete and it would spit out that data. Does that make sense?
  8. My panel near to 33KV main power line

    A control panel 70 cm away from a 33KV power line? That's an odd choice of placement, why so close? Are the 33KV lines sheilded or no? That will probably make all the difference in whether or not it will effect the communication. Also, that will be a nightmare for people that have to troubleshoot the panel especially if the lines are unshielded, that is a huge safety issue. I wouldn't want to troubleshoot that panel.
  9. a Quick Question.

    You have to start a new project and then you will be able to select that option. You can't select it if you don't have a new project open.
  10. SOLA Power Supply Problems

    We use a lot of Sola power supplies here with mixed results. We use mainly 10 amp and 20 amp power supplies for our equipment and most of the time they work good but once in a while you get one that works for a few days and then just stops working. No explosion, no burnt components, just no 24 volts DC output. We do have a harsh environment here and they seem to hold up better than most power supplies in wet damp environments but they are also more expensive than most. We are currently trying ABB power supplies, so far they are working well but they haven't been in the plant as long so we will see.
  11. Q02H to Data Station Plus

    When I first did SCADA with Q series the first problem I had was not being able to open the ports. I found that even though you can set the IP settings and DNS settings in either Hex or Decimal the port number you use is always in Hex. That messed me up for a while because I was trying to open up port 1020 in decimal and I didn't know it had to be in Hex. Not sure if that's your issue or not but that was the problem that had me ripping my hair out
  12. Mitsubishi A1S Series Manual-HELP!

    The discriptions and information for the special M contacts and D registers for A and Q series processors should be in the help files in GX Developer. PLCHelp.bmp
  13. Cumulative flow

    You should be able to do that. You will probably have to make a digital variable tag and point to whatever address in the PLC that you want to look at. I usually take all the inputs or outputs from one card and group them into a D register so I can pull out all 16 points with only one variable tag. Then you can split it back up in Citect with some coding. I don't really do much with logging in Citect so I can't be of much help and I've never used the XP templete so I can't really help with that either. Sorry!
  14. Cumulative flow

    Yeah, you pretty much have it. You just need to make a new I/O device for disktags. See the attached thumbnail. You can then assign your variable tag to the disktags and give it an address of R0 (R for Real), you could give it any address if you'd like but I use R for real, I for int, d for double so on and so forth.
  15. Q64TCRT Module

    Hey all, I was wondering if anyone has done anything with these temperature control modules and could give me a hand with something. I have it working and it works very well (I'm impressed how well they work) But I do have one problem that I can't figure out. There are buffer addresses (3Eh, 5Eh, 7Eh and 9Eh) that if you set to 1 will read the PID values stored in the EPROM of the card. This is so you can get values stored after doing an autotune so they don't revert back to original settings after the PLC is powered down. I am using 3 channels on the card so on the initial scan I set the values for those three channels to 1 to read out the values in the EPROM, but the problem I'm having is that as soon as it tries to read the values it faults out the card and stops the PLC. I have no problems writting to the EPROM after I do an autotune function so I'm not sure what's going on with that. Has anyone had a similar problem? Any help would be greatly appreciated, thanks!
  16. Cumulative flow

    No, everything after the ChangeToReal() is part of that function. (The function ends with an END statement) So, everytime that function is called it will do all those conversions. Here is the complete function: FUNCTION ChangeToReal() INT IStaticCheckMContact INT iStaticCheckActive INT iVacuumLevel INT iFormTemp INT iSealTemp INT iPlugTemp INT iFormOn INT iSealOn INT iPlugOn REAL rFormTempConverted REAL rSealTempConverted REAL rPlugTempConverted REAL rVacuumLevelConverted REAL rFormOnConverted REAL rSealOnConverted REAL rPlugOnConverted WHILE TRUE DO iVacuumLevel = TagRead("SLMT_Vacuum_Level",0); rVacuumLevelConverted = IntToReal(iVacuumLevel); rVacuumLevelConverted = rVacuumLevelConverted / 10; TagWrite("SLMT_Vacuum_Level_Real",rVacuumLevelConverted,0); iFormTemp = TagRead("SLMT_Form_Temp_Raw",0); rFormTempConverted = IntToReal(iFormTemp); rFormTempConverted = rFormTempConverted / 10; TagWrite("SLMT_Form_Temp",rFormTempConverted,0); iSealTemp = TagRead("SLMT_Seal_Temp_Raw",0); rSealTempConverted = IntToReal(iSealTemp); rSealTempConverted = rSealTempConverted / 10; TagWrite("SLMT_Seal_Temp",rSealTempConverted,0); iPlugTemp = TagRead("SLMT_Plug_Temp_Raw",0); rPlugTempConverted = IntToReal(iPlugTemp); rPlugTempConverted = rPlugTempConverted / 10; TagWrite("SLMT_Plug_Temp",rPlugTempConverted,0); iFormOn = TagRead("SLMT_Form_ON",0); rFormOnConverted = IntToReal(iFormOn); rFormOnConverted = rFormOnConverted / 10; TagWrite("SLMT_Form_ON_Fix",rFormOnConverted,0); iSealOn = TagRead("SLMT_Seal_ON",0); rSealOnConverted = IntToReal(iSealOn); rSealOnConverted = rSealOnConverted / 10; TagWrite("SLMT_Seal_ON_Fix",rSealOnConverted,0); iPlugOn = TagRead("SLMT_Plug_ON",0); rPlugOnConverted = IntToReal(iPlugOn); rPlugOnConverted = rPlugOnConverted / 10; TagWrite("SLMT_Plug_ON_Fix",rPlugOnConverted,0); // This is for trending the static test screen enabled bit. iStaticCheckMContact = TagRead("SLMT_Static_Enabled",0); IF iStaticCheckMContact = 1 THEN iStaticCheckActive = 1; ELSE iStaticCheckActive = 0; END // end of If Then Statement TagWrite("SLMT_Static_Enabled_Int",iStaticCheckActive,0); SleepMS(250); END // End While Do Statement END // End of Function I have this function running forever in a While Do loop that starts when Citect starts up, the SleepMS(250) at the end means that it will pause for 250 ms and then loop back up to the top. This is to free up processor time for other functions. You can create functions like this and run them only at certain times if you'd like, it all depends on what you want to do, it's very flexible. As far as the tagging, I have one variable tag to get the information out of the PLC, then I make another variable tag that is local to the computer (it's called a disktag) and put the converted value in there. Then whenever I want to display that data I will use the disktag variable because it is being constantly updated to a real value.
  17. Cumulative flow

    The first multiply by 100 is so you can get the extra two decimal places of information, because as JRoss said the PLC will truncate (I was listening!) any number after a decimal point if you're not doing floating point calculations. Divide by 800 is to get your 0.00 to 10.00m^3/Hr flow rate value from the 0-8000 AD signal. The next multiply by 100 is so you don't lose the two decimal places when you do the next division to find instantaneous flow value. When you divide that by 3600 you're finding how much flow you had in that one second sample time. So, you're taking your m^3/hr value and dividing by 60 to find m^3/Minute and then by 60 again to find m^3/second. Since you're going to sample every second then this value you just add together every second and that should be a good way of getting a flow total for the day. You have to change it to a real number in Citect is because you need to display the number to the hundreth place and you can't do that with an integer value. It's pretty easy to get the value out of the PLC with Citect. Create your variable tag in Citect and make the Data Type "Long" then put the D register value in the address field. So, say you did all the math on it and your final flow total value you put in D100, since it's going to be a double it will take up D100 and D101. With the Long variable type in Citect you put D100 in the address field and it will automaticly take D100 and D101 because that will make up 1 32 bit register. You will probably have to write a small Cicode file to do the IntToReal() conversion. You will have to tagread into variables in the Cicode and then do the conversion, divide by 100 (to move the decimal place) and then tagwrite to a seperate variable tag. (I'm sure there are plenty of ways to do it but that's the way I usually do it.) I hope that helped you understand a little better, I'm not usually good at explaining stuff :-P I'll include a screen shot of a function I created in Citect to convert variables to real, hopefully it will explain it a little better.
  18. Cumulative flow

    Yeah, double register. 32 bit register, whatever you want to call it. Here's how I would do it: Multiply your AD signal by 100, so: say you get 5000 as your signal, multiply by 100 to get 500000. Then divide by 800 to get your 0-10 flow rate: 500000 / 800 = 625. That is 6.25m^3/Hr Then multiply 625 by 100 to get 62500. Then divide 62500 by 3600 to get the instaneous flow. 62500 / 3600 = 17.36 The PLC will round this to 17 and this will actually be .17m^3 Add this number to your total every second and you will have a running total accurate to a hundreth of a m^3 This number will still be a whole number in the PLC, so in Citect you'll have to do a IntToReal() command to change it to a real number and then divide it by 100 to move the decimal place.
  19. Cumulative flow

    Hello, I've done exactly what you're trying to do with Citect in the past, the only difference being that I did it with Opto 22 instead of a PLC. It's the same thing though, I just took a sample of the flow rate every second, divided it by 60 (because it was in Gallons per minute) and added that to a total in a seperate register. As long as you use a double integer you should be fine. That way if you lose connection to Citect for any reason your flow total shouldn't be off.
  20. Maple's Silver Series 550 and FX3U talking faster

    Panic, You can also change the PLC block pack parameter in the HMI settings page to a number higher than 0. The block pack parameter will change how the HMI gets the information out of the PLC. For example: If you have the block pack setting set to zero and you are reading D0, D1, D2 and D3 out of the PLC then the HMI will sent 4 commands to read data out of the PLC but if you have the block pack setting set to 4 then it will only send one command to read data. If you are reading D0, D1, D10 and D16 and the block pack is set to 4 then it will send 3 commands to read. One for D0 and D1 and two seperate commands for D10 and D16. You already said that you optimized your D registers in your PLC so this could definatly make an improvement on your update speed. You may want to try this too.
  21. Maple's Silver Series 550 and FX3U talking faster

    I agree with you about the transfer speed issue, there's no reason they can't use a much higher rate as the standard with communication. I guess most stuff is going to ethernet now anyway though. Just a thought but in the future try and use the Silver Plus series of screens, they are much nicer to program and have better communication options, built in ethernet port standard as well as usb ports and 3 comm ports all for a few hundred more. They also have faster processors to better handle many updating variables, as it sounds like that's what you're doing it might be a better option for you in the future. We are changing all of ours over to the new silver plus series ourselves. Just a suggestion!
  22. Maple's Silver Series 550 and FX3U talking faster

    That's some awesome technical support. I don't know, I've never had a problem getting them to communicate. I use 19.2 for all the fx2n's and 115 kbps for the q-series PLC's they all use the programming port to communicate. I'm not sure why you're having an issue with it. I was playing around with one I have here and even at 9600 it still updates pretty quick, how come you need the faster speed? I don't see much of a difference in update time from 9600 to 19.2.
  23. Maple's Silver Series 550 and FX3U talking faster

    I rechecked the settings and I can't find anything special that you have to set. The Maple systems screens use the same port as GX Developer so if you can program the PLC at 19.2 then you should be able to communicate with the touch screen at 19.2. The only difference is that the SC-09 cable has a built in RS-232 to 485 converter and the touch screen communicates 485 directly with the PLC. All you should have to do is set the baud rate at 19.2 in the touch screen settings.
  24. Maple's Silver Series 550 and FX3U talking faster

    Try this and see if it works: http://www.maplesystems.com/cgi-bin/downlo...f=ezupgrade.exe
  25. Maple's Silver Series 550 and FX3U talking faster

    Sure, Here is the location for the cable information: http://www.maplesystems.com/1023/10230024.pdf Here is the setup information: http://www.maplesystems.com/1033/10330005.pdf You can download the new version of the Maple systems software for free, I think you just need to create an account with them to sign in.