Zamora

MrPLC Member
  • Content count

    20
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Zamora

  • Rank
    Sparky

Profile Information

  • Country Mexico

Recent Profile Visitors

1334 profile views
  1. As a note, under the the path C:\EpsonRC70\Controller\Drivers there is a program called USBDiverInstaller.exe. Running this program pops up a message and says the driver has been installed, but the problem still persists. 
  2. Good day all.  We have a machine at our site that uses Epson robots and has a PC with which we can connect to the robots through an USB cable. Yesterday there was a planned power shut down at the factory site, so all of the robotic equipment was safely shut off before that. This morning I am trying to connect to the robots using the PC and I get the Error code 1808: Cannot connect to controller, USB driver is not installed. Out of multiple Epson robots, this was the only one with this issue.  The equipment was working just fine yesterday. Looking through the Epson website, I can't find the USB driver, and re-installing the whole software is not an option as this equipment was provided as-is by the vendor.  Do you have any recommendations about what I can do or how this could have happened?  I appreciate your replies,    Best regards,    
  3. Good day everybody!    I am having issues troubleshooting a machine which is controlled by a VIPA PLC. I must admit that I am not very knowledgeable with this brand so I am a bit hesitant to touch anything. From the machine's supplier I got a .wld file which I could load into an SD card and load into the VIPA PLC itself through a Master Reset procedure. Still, our issue persists so I was wondering if I could somehow extract this .wld file into Speed7 Studio (or another program) to visualize it and try to troubleshoot the issue. Or in another case, if there was a way to directly read the currently loaded program from the PLC.    As I said, I had never worked with this brand before so I am being a little overly cautious with what I touch in this PLC.    Thanks for your help! 
  4. Anyone ever had this one?

    This is the message you get when there is a disconnection with the PLC Module.  If connection is faulty, there may be an issue with your communication cable. Check with a different cable and see if the problem persists.  Otherwise, have you tried checking that you are in fact using the correct communication type?  In the Project window, navigate to "Communication Destination" and check the current connection. Are you using an USB cable or connecting through LAN? If you are connecting through LAN, check that your PC's IP address is in the same network as the PLC.  I hope this helps.  Cheers!   
  5. Thank you for your quick reply. This was the issue.  Mistakenly, I assumed that "Base address" referred to the position in which the Module was mounted on the base.  I have a 64 point Input module in the first Base Slot and a 64 point Output Module in the second Base Slot, so the start number of the positioning module should have been 80, not 20. I already corrected this and the project is working fine now.  My confusion also came because in my previous experience with LSIS MasterK PLC, the 'PUT' and 'GET' commands work similarly to the 'TO' and 'FROM' commands in Mitsubishi, but in the case of MasterK, you do specify the Base SLOT number.  Thank you! 
  6. Good day everybody,    Currently I am working on an application using 3-axis controlled by a QD77MS4 Simple Motion Module.  In this case, I have already set up most of the configuration, but when I try to execute the program, I get the following error:   SP. UNIT ERROR - The location designated by the FROM/TO instruction set is not the intelligent function module/special function module.  - The module that does not include buffer memory has been specified by the FROM/TO instruction.  - The intelligent function module/special function module, Network module being accessed is faulty.  - Station not loaded was specified using the instruction whose target was the CPU share memory.   The QD77MS4 Module is mounted in Base Slot #3, so I use U2\G800, U2\G1500, etc... to Read/Write from it.  The Diagnostics tool indicates the error occurs as soon as I try to access the U2\G800 Buffer Memory. If I set this part of the program to No Execution the error is no longer displayed.  Additionally, if I try to monito the Buffer Memory area of the Module, it says that "The Module Stat Address is incorrect".   I already tried changing the position of the module in the base (Slot 3 --> Slot 1) and changing the corresponding values to reflect that, but still the problem persists.    What am I doing wrong? Is there some kind of configuration I could be missing?    Thanks in advance for your help!   
  7. Thank you for replying, Nightfly.  I was thinking of doing something similar but the idea didn't convince me too much either. Besides, I still have the problem that, when the user attempts to connect to a PLC that is tuned off, the program simply freezes...  I will try looking into kepserverex OPC. Unfortunately, simply using an HMI isn't enough of a solution for us, since we are actually using the PC as an intermediary to facilitate the communication between a PLC and a Robot.
  8. Good day,  I am working on a program in C# that talks to a PLC using MX Components, connecting directly to a Q Series CPU Module (Q03UDE) through the built-in Ethernet port. The basic function is working already, but I would like to handle the case that the connection to the PLC fails, either by a PLC disconnection (cable damaged, PLC power off, etc...) or when the C# program attempts to connect to the PLC but the PLC is not turned on. Right now, if I try to connect to a PLC that is turned off, the program just freezes and stops responding, so I have to stop it manually. If the PLC fails, the program also simply freezes. How can I handle this case? For example, an automatic disconnection or setting a timeout for the Open( ) connection attempt.  My code looks like this:  int nReturnCode; int nStationNumber = Convert.ToInt16(cbStationNumber.Text); MitsubishiLib.ActLogicalStationNumber = nStationNumber; nReturnCode = MitsubishiLib.Open(); if(nReturnCode == 0) { btnConnect.Enabled = false; btnDisconnect.Enabled = true; btnReadChannel.Enabled = true; btnWriteChannel.Enabled = true; pbConnectionStatus.Value = 100; } else { MitsubishiLib.Close(); } I think I could use nReturnCode to handle the error, but I can't figure out how... Thank you for your help! 
  9. PLC Mitsubishi - Air low control with sensor

    Good afternoon, I am not really sure I understand your first question, as far as I can tell, you want to increase or decrease the analog output for your VFD in order to match your desired sensor reading. In that case, I would set a certain tolerance range, for example, if your desired value is K260, the tolerance range would be K250~K270. From your second question, let's say that D200 contains the value that will be sent to your analog output and that D100 contains your analog sensor reading. -|< D100 K250|---|SM413|---|INCP D200|- -|> D100 K270|---|SM413|---|DECP D200|- In Mitsubishi Q-Series CPU, SM413 is a flag value that pulsates every certain amount of time. When this pulsates, you will read your analog sensor input and increase or decrease the value of D200, which will be sent to your analog output. You should be careful when determining the polling time based on your system's response time. In this case, I set it to about a second or so, but if your system can't respond quickly enough, you will be constantly overshooting and undershooting your target. For your second question, I'd recommend checking for negative values as well, something like this: -|< D200 K0|---|MOV K0 D8090|- -|>= D200 K0|---|<= D200 K4090|---|MOV D200 D8090|- -|> D200 K4090|----|MOV K4090 D8090|- I hope this information is helpful to you, best regards.    
  10. Error handling with UR polyscope

    Good day everybody, Recently I have been working on an application using a CB-series UR. I have an issue where the robot tries to pick up a piece using a vacuum gripper, and in the case that the robot either doesn't detect the piece, is unable to pick it up or loses grip on it, there needs to be a way to handle this error case and go, for example, to a safety position or turn on an alarm. The problem is that I have been unable to find a correct way to implement this error handling. The best I could do was to just halt the program execution, but this is not satisfactory for this purpose. Does anybody have any tips on how to interrupt the program, switch to a different case or similar? Specifically, I have been working using the Polyscope pendant and have found difficulty programming anything remotely advanced. Thanks in advance!
  11. CC LINK Communication Error

    Please verify that distance is your issue before purchasing and installing a repeater station. As the name implies, a repeater station is meant to extend the transmission distance capability of the CC-Link system. I recommend you look up the manual for "CC-Link System Repeater (T-junction) Module AJ65SBT-RPT" for more information about the module and if this is indeed the right option for you.  
  12. CC LINK Communication Error

    What is the distance between your stations? Maybe you are going over the recommended transmission distance. If this may be the case you could solve the issue by installing repeater stations.
  13. What kind of application are you working on? If you really want to drive the cost down, why not ditch the HMI entirely and go with electric control instead? A couple of dip switches, a 24V power supply and some push buttons may do the trick... From your original post it seems like you only use the HMI to input a numeric value between 0 and 255, and if you want to forego using a PLC you probably aren't monitoring any other IO anyway/
  14. String to Hex

    Good day rhastalei.   The problem is with the order you store the string characters and the order the HEX instruction reads them. To replicate your issue I am using GXWorks2 to simulate a Q03UDE CPU  PLC (Debug Simulation). Sorry I can't share screen captures from this PC, but I'll try my best: -| SM400 |-----[$MOV "DB" D40]-   // Moves the string "DB" to D40, in your case you probably moved "BD", getting the opposite result -| SM400 |-----[$MOV "10" D41]-   // Moves the string "10" to D41, in this case I was not sure if you used "10" or "01" but from your post I took "10" -| SM400 |-----[HEX D40 D50 K3]-   // Converts 3 ASCII characters to HEX value and stores them in D50 From this operation, I get the following results: D40 = 42 44HEX = B D ASCII D41 = 30 31 HEX = 0 1 ASCII D50 = 01BD HEX    Now let's check how the HEX instruction reads ASCII values. GXWorks Help Menu has very useful images to explain this, but here is a quick summary:  It starts by reading the lower 8 bits of D40 (in my case, 44 HEX = "D" ASCII) This value is converted to 4-bit binary representation and stored in the 4 lower bits of D50, bits 0~3 (1101 BIN = D HEX) The instruction reads the upper 8 bits of D0 (in my case, 42 HEX = "B" ASCII) This value is converted to 4-bit binary representation and stored in the next 4 bits of D50, bits 4~7 (1011 BIN = B HEX) Finally, the instruction reads the lower 8 bits of D41 (31 HEX = "1" ASCII) This value is converted to 4-bit binary representation and stored in the next 4 bits of D50, bits 8~B (0001 BIN = 1 HEX) As you can see, we have constructed the HEX value 1BD starting from the least significant digit up to the most significant digit. In your case, you are storing the most significant digit first ("B") and storing the least significant digit last ("1"). Try storing the ASCII String "backwards", start by storing the least significant digit first ("1") and the most significant digit last ("B"). In my case I used this program to get 0BD1 HEX in D50. -| SM400 |-----[$MOV "1D" D40]-   -| SM400 |-----[$MOV "B0" D41]-   -| SM400 |-----[HEX D40 D50 K3]-    Depending on how you are receiving your data, you could make some arrangements using $MOV and SWAP instructions to process your ASCII values before reading them with the HEX instruction. I hope this is helpful, best regards!  
  15. [UPDATE] I managed to get it working again. After rebooting my PC (again), I tried to open KGL_WIN but the program wouldn't even start up. I went into the program properties and set these compatibilities settings: Compatibility Mode: Windows 98/Me Run in 640x480 screen resolution Run this program as administrator Program DPI Use this setting to fix scaling problems Use the DPI that's set for my main display when: I open this program Override high DPI behavior Scaling performed by: Application I hope this is helpful for anybody that may encounter this issue in the future, although this software is so outdated I seriously doubt it, haha! In any case, an important detail may be that I am running Windows 10 on my PC. I'll try to update this post if I find anything else that is useful regarding this topic. Cheers!