Jump to content

cmarcus

Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by cmarcus

  1. Hi Joe, Sorry, this reply is over a year in the making. Yes, the .NET SAP driver was specifically developed to perform production step confirmation transactions in SAP. The broader system is a .NET application with a fancy user interface. The operators bar code scan the relevant SAP production info into the HMI of the .NET application. The .NET application establishes connections with several production devices (thickness gauge, vision inspection camera, weight scale and a Vision PLC with multiple count sensors for tracking various defect modes). The manufacturing process is run and data from all the connected devices is streamed back to the single .NET app on a part by part basis. Live trends, yields, and failure modes are displayed and log files are developed for tractability. When the order is complete, the operator simply clicks the "Close Order" button and we run the SAP transaction in the background, using the bar code scanned order number, material number, operator ID, and the integrated device data for production yield and itemized scrap codes. The operator does not touch the SAP interface, nor do they keystroke anything in the process. The Vision's PLC's .NET driver was a game changer for us. It was the most straight forward way to have machine level / tag level access, and combine this data with the results of our various other devices. Unfortunately, when it comes to the Unistream, I still have not seen any examples as clean and as reliable as the Vision .NET driver to gain tag level access to the data from a stand-alone PC application. Thanks, Chris
  2. Not sure this is the proper location for my question, but will there be a .NET driver or communications protocol for the UniStream as there is for the Vision? I've used literally dozens of Vision PLC's simply because I can tie together PLC operations and production control operations with several other peripheral devices (bar code scanners, RFID readers, measurement gauges, keyboard wedge devices, etc.) into a single PC based application, then integrate it into my customer's production systems or warehouse systems (SAP, SAGE, MFG Pro, and custom SQL databases). I've hesitated migrating to the Unistream models because I haven't seen a method as clean as the Vision .NET driver to read and write to specific memory locations in the PLC. Thanks, -Chris
  3. Flex... no it didn't not include the corrupted file. The corrupted file would crash either way, so I trashed it. The issue that remained after the corrupted file was trashed was that if I double click any .vlp file, Visilogic would crash with that error message. I later discovered that if I opened Visilogic and did a File/Open and navigated it seemed to open ok, but I was never able to simply double click the .vlp file with out it crashing. But I still wanted to just be able to open by double clicking the file itself. I think I have it working now. Here's what I did. 1) Uninstalled Visilogic 9.8.31, looked in Common Files and Program Files and deleted any residual files. 2) Rebooted the PC 3) Installed an old copy of Visilogic 9.7 Build 60. 4) Rebooted the PC 5) Opened one of the example files, and Saved As to the desktop. 6) Closed Visilogic, then double clicked the .vlp file that was saved to the desktop. (It opened with out crashing) 7) Uninstalled Visilogic 9.7 Build 60. 8) Rebooted the PC 9) Installed Visilogic 9.8.31. 10) Rebooted the PC 11) Double clicked the .vlp file that was saved to the desktop. (It sill opened with out crashing) 12) Double clicked my backup file for my current project and it opened with out crashing. Thanks again to all for your support.
  4. Hello Ofir, I do have backups of the project file, so no worries there. I checked the DB folder and I do not have a file called Current_OPLC.udb. I think that may be part of the problem. I think Visilogic is looking for it, and it's not present. Reading the error message again, it looks like there's a function in the UnPrHndl1.dll that has a class call clsDBHandler. This class has a function OpenConnection that opens a connection to a database. The error message indicates that it encountered an error opening the connection and notes an unrecognized format. However the target location where the database should reside does not contain the specified database (Current_OPLC.udb). Could someone send me this file. Maybe if I just drop it into the folder it will satisfy the condition of the OpenConnection function?
  5. Just tried to restore it prior to when the event occurred, no luck. Same error message on start up. Hopefully the support team will have some suggestions. Hate to think I may have to re-install windows just to get Visilogic working normally again.
  6. Ok just uninstalled/reinstalled as administrator. Still having issues. I cannot double click any .vlp file and have it open, Visilogic just crashes with the same message as above. If I open Visilogic as administrator, then do the File/Open and select the file I was working on, I still get a couple of error messages (see below). If I do File/Open and select any other files they seem to open. I'm thinking the root cause of this is a corrupted file or key and a dirty uninstall where the file or registry key persists. Looking at the registry after an uninstall and reboot, it's filled with Uni entries. As noted above, I already submitted a support email, so hopefully I'll hear back sometime soon.
  7. Hello Everyone, I seemed to have "bricked" Visilogic on my PC. Was connected/online with a PLC, I shut the lid to my laptop, when I opened the lid my computer was off... not sure why or how it completely shut down but it was definitely off. Restarted the PC, tried to restart Visilogic and I get the error message below. Note the file referenced (Current_OPLC.udb) is not present in the specified directory. I uninstalled / reinstalled Visilogic, tried opening other projects, even tried just opening Visilogic with no project loaded. I can get it to open by right clicking and running the .exe as administrator, but it still crashes when I try to open any application. Additional Details: Windows Pro 10 64 Bit, Visilogic 9.8.31, Vision 130-33-T38 PLC. Also sent an email to support but as it was late in the day I haven't heard back as of this time. Any help getting this resolved would be appreciated. -Chris
  8. Ok that makes sense. Thank you very much!
  9. Hi, I have a customer that is looking to use a Unitronics PLC to add additional outputs to their existing system. The main system runs on a .net application, so the PLC would be mainly used to set/reset a MB or Output at a particular time. The response time needs to be pretty fast, likely a few milliseconds from PC send to output state change. Which communication method would be the fastest or would they be roughly the same? - PCOM - .NET driver - Custom protocol with short command sent from PC and received via FB protocol scan. Just getting a feel on how I should build the PLC communications class. Thanks,
  10. Hi Joe. I have a V430--J-T38. Hi Ofir. That worked. Thank you for your help.
  11. Hello Unitronics Team, I just updated to Visilogic ver 9.8.31 and the PLC OS that is packaged with it. When I hold my finger to the touch screen for 5 seconds it goes into Info mode. When I press the "Enter Info Mode" button, I get prompted to enter a password, but no on-screen keyboard shows up.
  12. Wow, that was embarassing! LoL. Guess I just needed another set of eyes to look at this. Thank you very much.
  13. Hello, I'm having an issue with getting the .NET driver to connect and read values. I am having no problems connecting using Visilogic, but when I take those properties and use them in the .NET driver they don't seem to be working. The interesting this is that I'm not getting an exception, so my application believes the driver is connected, but looking at the properties for the Ethernet object it appears not to be. When I put a break point on the oPLC object, it states that the object could not be evaluated because the previous function had timed out. When run it down to the last line and check the response values it is null. Here's the code: Ethernet ethernet = new Ethernet(_cell1PLC_IP, _cell1PLC_Port, EthProtocol.TCP, 3, 3000); PLC oPLC = PLCFactory.GetPLC(ethernet, 1); oPLC.SetExecuter(OperandsExecuterType.ExecuterPartialBinaryMix); // Create the write request // ReadWriteRequest[] readShifts = new ReadWriteRequest[1]; readShifts[0] = new ReadOperands { NumberOfOperands = 1, OperandType = OperandTypes.MB, StartAddress = 0, }; // Extract the shift times // object[] shiftTimes = ((object[])readShifts[0].ResponseValues);
  14. I have a display board with a Red Lion controller that networks 3 V430 PLC's via modbus IP. Everything is connected via the Ethernet card add-on installed into port 2 on each PLC. Is it possible to also remote connect to the PLC tough this same Ethernet card (even though it's in use as a modbus slave)? If so how would I do this? When I try to go live in Visilogic or Remote Operator it cannot establish a connection. Thanks, -Chris
  15. Thank you for the response, Joe. I'll look into changing to a TR34 or TRA22. Best Regards, -Chris
  16. Hello Forum, I've got a project where I've spec'd a V430 to run the show on an existing material handling and cutting system. Everything was going great until I realized that the rotary cutter motor was a Nema 34 stepper. What I thought was a digital "Go" signal feeding a programmable motor controller, ended up being a pulse train being sent to a simple pulse train amplifier. The proper sequence is to run a home routine when brought online (one revolution at 2kHz, and stop on the home sensor). Then on the rise of a position sensor, run one revolution and stop back on the home sensor. Clocking the existing PLC's pulse train, it accelerates to 5kHz in 30mS, when the cutter wheel is 45 degrees from home, coasts back to 2kHz, then stops back on the home sensor. I tested out the PWM on my V430, but the signal is a bit dirty at 5kHz and the best I was able to get out of it was 3.2kHz and have the cutter work reliably. Does anyone know any alternatives to get the full speed out of the cutter, short of swapping out everything for a new motor and drive? Thanks, -Chris
  17. Thank you Saragani, The events I'm looking for are indicators in an input state change. I wasn't sure if the .NET driver would do the polling for me or if I would have to build the loop. I was hoping it would do the polling for me with the option to have the loop either be blocking or non-blocking. The alternative that I was thinking about was to use the PLC's protocol send command in the ladder and have the PLC send the input status via the serial port. This way the .NET application just waits for a data received event on the COM port. I'll play with both methods and see which is best suited for this application. Thanks again, -Chris
  18. Hello Everyone, I have a new project that would require me to integrate a V130 PLC into an existing .NET application. Basically I'll need to send a "recipe" to the PLC. This will involve setting a series of values (via serial) to a mix of MB's, and MI's. Then the PLC will run autonomously sending status information, and the .NET application will go into a listener mode and simply act as a terminal. So I'm kicking around the best method to do this, and would appreciate any advice on which would be the best method to go forward: Ideally I'd prefer to use the .NET driver, but I'm not sure it's best suited... Does the .NET driver support events? I would image this would require setting the .net driver off on a thread that simply polls a MB or series of MB's for a state change. The obvious approach is that I could use the PCOM protocol, but that would require a fair amount of coding, over the .NET driver. Another approach would be to simply use the protocol scan and send functions in visilogic and establish my own simple protocol for the back and forth. Are there any others options that would be well suited? Please note, I'd prefer to leave the system as it is today (PC <--(RS-232) ---> PLC). Any thoughts would be appreciated.
  19. Hi Joe, Thank you for the reply. This information was very valuable. Much Appreciated, -Chris
  20. Hello All, I have a simple 1-axis stepper motor application that I'd like to use a Vision 130-33-T2 PLC and control the motor using the +24V DC PWM outputs. The problem I'm having is finding a decent low cost motor controller that supports sourcing inputs for step control. I seem to keep coming across ones that only accept sinking inputs or the fully programmable ones. So I guess my question is two fold: 1) Does anyone know any low cost stepper conrollers that accept the +24 VDC pulse train from the PWM outputs on the PLC. 2) Is there a simple way to convert the Unitronics output to sinking? Thanks in advance,
  21. Ok, I tested it with remote operator and everything works fine. I then tested the .NET driver with an XP machine and it locked up. So it sounds like there's something in the application that is causing the lock up. It looks like I'm going to have to re-write large parts of it anyway, so hopefully when I formally redo the PLC communications class I'll get this problem resolved. Thanks again for all your help. -Chris
  22. Hi Saragani, Thanks for the response. I am using serial communications (standard 57600, 8, N, 1). I am also using a serial gear 8 port USB to serial converter with the FTDI chip set. Here's the link: http://serialgear.com/Industrial-Serial-Adapters-USBG-8COM-M.html The application uses two instances of the Unitronics .NET driver to talk to load parameters into two separate PLC's. (One PLC acts as the main drive controller, and controls web tension load cells and four drive motors, the second PLC acts as an Edit controller handles evaluating the real time results of digital inputs, loading and analyzing the shift registers, and delivering digital signals to the motor controller commanding the motor controller to Run, Jog, Stop, Forward, Reverse, etc.) Both PLC's use the COM 2 port pitch data back to the application and display the realtime statistics of the production run along with any alarms or alerts. The PLC code is sold and works extremely well. Unfortunately I did not write the original .NET application but have been tasked with migrating it over. And unfortunately the application is a bit of a mess from a structure standpoint, however the original version that used the Active X control on an XP platoform did work as expected. My first step for this was to move all function calls from the Active X to the .NET driver. Once complete, I recompiled the code (on my XP machine) with the platform "Any Processor" and deployed it to the machine's Windows 7 machine. Everything seemed to work well but after a few hours, the operators are noting the long delays and lock ups. These I've been able to trace specifically to sending the Write Command to the PLC and getting a response. The two things I have not tried yet, is download the .NET driver source code and recomplie it with a target platform of Any Processor or x64, and install .NET onto a Windows 7 64 bit machine and compile it. But I'm not sure if this would be the proper next steps. Sorry for the long e-mail but I wanted to give as much detail as possible.
  23. Hi All, I've got an application that has been migrated from Windows XP SP3 to Windows 7 64-bit. I'm having trouble with something that may be the .NET driver, but I'm not 100% sure. When I run my application everything seems fine, but after doing a few calls to read values from the PLC, I'm starting to see my application lock up. Investigating further, it seems to be locking up while waiting for a response from the .NET driver to read a single memory bit value. It seems like sometimes there is a long delay anywhere from 3 seconds to a full blown lock up that requires me to kill the application. I'm just wondering if I need to do anything special with the driver, like recompile for x64 or anything? Any help would be appreciated.
  24. Hi Emil, Thank's for the help. I'm transitioning the code from a V120 (standard) to a V130 (enhanced). Seems like an awful lot of code to develop two subroutines and a blocking condition just so I can reset a bit using a button on the key pad. But overall this does seem to work. I wish the R&D or software department would look into if there was a way to not have a display transition bit go high for the first ladder scan if being used for a transition. Or even more simply, continue to use SI252 for the enhanced models and just update it's value after the first scan. That would make upgrading from standard PLC's to enhanced PLC's a simple an HMI exercise!
  25. Hello Everyone, I have been using Unitronics products for nearly a decade now and have very few gripes. I love how the team actually listens and reacts to their customers needs. With that said, there is one thing that drives me nuts! It's the interaction between using a key value to jump from display A to display B, and having that same key value perform a (ladder) function while display B is displaying. I've attached attached a few images to illustrate what I'm talking about. I have main menu (display A) that uses SB41 (key 1) to jump to display B I have reset menu (display B ) that gives the operator the ability to reset the count by pressing any one of the buttons preceeding the lane. I have the ladder function that states, On rise of SB41 (key 1), While SI252 (current display) = #49 HMI info display number for reset menu (display B ), Reset Lane 1 count (ML1) So when I run my program, the act of pressing SB41 while displaying display A to move to display B, actually resets my count in display B. I've also tried using the same code but moving my ladder to a new subroutine and linking it to the "While Displaying" and I still get the same result. It appears the PLC processes the jump condition first, then perfoms the ladder scan. Is there any reason why it is done in this order? Wouldn't it make more sense to reverse this and perform a display jump condition at the end of the ladder scan, so that the rising edge of buttons that are used to perform the jump don't interact with any ladder funtions that are supposed to occur after the jump has completed? Thanks,
×
×
  • Create New...