Jump to content

Llisas

Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by Llisas

  1. Hi,

     

    I have to make the decision if I take a project or not.

     

    I have worked with LabVIEW for less than a year. I'm a CLAD but I only have experience in one project, which involved only using modbus tcp to communicate with a controller, so I don't have any experience (aside from taking Core1 and Core2) with data acquisition.

     

    I was offered a project which consist on acquiring sound. The hardware used is a microphone connected to a cDAQ, and then a cRIO is connected to the cDAQ. Periodically (about 5 mins) the data is sent to a local database. If the sound is higher than the maximum dB level allowed, then the system should record the sound for X seconds. Then that audio file (it can be wav) must be sent to a Web Server, via HTTP or FTP. The last requirement is that the maximum level of dB allowed should be a parameter that can be changed remotely.

     

    I don't have any idea on how to do any of that stuff (except reading and writing to a database), and I have never worked with cDAQ or cRIO. The ideal is that the project lasts about 1,5 months. I have to tell them soon how much time I think I would take, and that's where I'm complicated. I know the LabVIEW enviroment, and I know there are APIs for almost everything, and I'll also have the cDAQ and cRIO for myself to test everything I want, so I know that eventually I could finish the project. But my main concern is that since I don't know how to do anything of this project, I don't know what's the learning curve for all that and much time would it really take. I'm inclined to take the project to win experience, but I don't want to tell them a deadline I won't be able to meet. I was thinking in telling them 2 months. Is that unrealistic? How much time do you think I would take to learn all that stuff if I don't have any experience at all with their requirements for this project?

     

    I know that there's not a clear answer for this, in the end everything depends on me, but any estimation you could make based on your experience is very welcome.

     

    Thanks in advance. 

  2. Ouch, silly mistake, thanks for pointing it out. 

     

    Finally I could solve the problem. I found out that the error 505 generates when there's an error in the operation and then in another iteration of the same operation a no-error overwrites the error. I used the shift registers in the for loop, and noticed that now another error showed, saying that I was writing a duplicate of a primary key. So I checked the array I was writing to the DB and in fact I had stored data from the previous operations that I already wrote in the DB. After fixing that the problem was solved.

     

    Thanks! 

    • Like 1
  3. Hi all, 

     

    I have an error that doesn't affect the functionality of my program, so for the moment I'm just ignoring it, but anyway I would like to know what is its cause and how can I solve it, or if it's safe to ignore it.

     

    I have a program that makes some tests and stores the data in some clusters, and then when the job is done it writes everything in a database. Then it asks if you want to start another job or end the program. Up to there everything works perfect. But if you choose to start another job without closing the program, after you complete it there's an error at the end of the database writing. The error is this:

     

    Error 505 occurred at NI_Database_API.lvlib:DB Tools Close Connection.vi->Escritura DB.vi->Interfaz Principal.vi

     

    Possible Reason: Open Command Object.

     
    ADO Error: 0x000001F9
     

    As you can see in the attached image, in my database writing subVI I only open connection, use two "Insert Data" blocks and then close connection. I don't have any command references to use the Free Object block, so I don't know what's wrong.

     

    Thanks in advance for any help. 

     

    post-51439-0-58583200-1409154427_thumb.p

  4. I searched in the manuals and didn't find any "keep alive" or "acknowledge" signals needed to be sent. It's supposed to work simply by writing in the address given.

     

    I tried searching what signal could be turning it off, but had no success. I even erased the signals assigned in PIO(in) (16 internal signals assigned in parallel ports), although no one was the JOB selection signal. I tried writing the signal alone, just like in the vi attached (and without the while loop) so I don't think I'm writing a zero in my code. 

     

    But thanks for telling me what exactly could be the problem, I'm just starting in all this so I didn't know where to look or if it was a normal behavior.

  5. Hi all, 

     

    I'm working on a project with a torque tool that has its own controller, and I have to make a program in Labview to select some stuff, monitor and save data. I'm using the Modbus/TCP protocol, and with the modbus library in Labview so far I've had no problems reading and writing, except for 1 signal:

     

    The torque tool can save up to 99 diferent Channel/Jobs (different torque curves), and I need to be able to select them with Labview. What I expect is that I write the register once at the beggining of the program, and then the channel remains selected until the job is done and the user wants to change it to do another job. But the problem is that when I make the writing in the MB Ethernet Master Query (multiple coils), the signal doesn't stay turned ON as I need it. If I debug it, I see that it just stays ON for miliseconds, and right after the Modbus makes the writing it turns OFF.

     

    If I put the block  in a while loop, it acts as if it was a continuous signal, but the problem is that when the code starts growing up to include all the other stuff, it adds some delay and it no longer acts as a continuous signal (mostly yes, but it has some shutdown peaks for some miliseconds, which visually doesn't affect too much, but it resets the channel/job and that stops the torque tool, which of course is unacceptable for the application).

     

    So my question is: is there anything I can do to solve that programmatically in the labview code? (forcing the " MB Ethernet Master Query (multiple coils)" to stay ON after they are written, or giving high priority to a specific while loop containing only that writing?),  Or do I need to contact the provider of the torque tool and ask them about setting the channel/job selection signal without writing it continuously?

    post-51439-0-53596100-1403009931_thumb.p

    post-51439-0-39640400-1403009941_thumb.p

    post-51439-0-91430600-1403009945_thumb.p

  6. Thanks a lot, that was really helpful.

     

    I'm doing this project in Labview because the enterprise has the licence of it, and they even made me take some basic courses (core1, core2, connectivity and industrial protocols), so I should be fine doing this simple application using Labview. But I needed to know and make a report about what other alternatives there are to make similar projects, and their advantages and disadvantages. So now I understand what is the main functionality of the traditional SCADA packages, they learning curves and what they are capable of, to consider it for future project.

  7. Hi, I'm involved in a project that consists on making an interface to supervise a job on real time and acquiring data from a controller to save it on a database.

    I'm going to use Labview because the enterprise uses it for some applications on testbenches so they already have the licence. But I need to make a report about what the other solutions are, with their advantages and disadvantages comparing to Labview for this specific application.  

     

    I read some topics and I understand that in general Labview's strenght is acquiring and processing signals, but for simple SCADA it's better to use software like InTouch, iFIX or Citect. So I would appreciate if anyone can give me information about if those softwares could be used for my application and what are the advantages and disadvantages.

     

    I'll explain in detail my application:

     

    There's an electric torque screwdriver and it has its own controller. On the controller you can set up all the torque curves to be used in different components, saving them in up to 99 different channels. The enterprise I'm working in bought a couple of these to use them in some electronic components that require precision on the fastening of the screws. A big detail is that it's important to make the fastenings in a sequence.  

     

    So what I need to do is an interface where the operator chooses from a list the component that he's going to make the work (when he clicks on the name in the listbox, it should appear a photo of the component so he's sure that that´s the one). Then he chooses to start the job. The front panel changes to show the component with LEDs instead of the screws, to show the sequence of the fastening (the LED1 starts turned on, then after the operator makes the fastening it turns off and the LED2 turns on, and so on until he finishes all the sequence). It also has an indicator to show the torque being applied, and two LEDs to show if the fastening was OK or No-Good.

     

    After the operator finishes the last fastening, he finishes the job and all the information is saved in a database (the serial number, total time, torque curves, results, etc) 

     

    By the way, the communication with the controller is made with Modbus over TCP/IP. The provider gave a manual with all the addresses of the signals for the modbus protocol to make an interface on a panel pc.

     

    So, can all the other SCADA softwares do exactly that? Would it be easier? I have only worked with Labview so I don't know about the other stuff, a comparison with one or two should be enough.

     

    Thanks in advance, every information is useful.

    post-51439-0-06307600-1401386893.png

    post-51439-0-83542500-1401386928_thumb.p

     

     

  8. Thanks a lot. 

     

    I made a little vi to see if I could read some coils. Finally after changing  some things it shows no errors. In the MBAP header it doesn't works if I set the Unit ID as 0, but with any other value it works fine. And the Transaction ID shows no problem if I leave it as 0 or change it to anything. And for the Starting Address, with anything below of 80 it shows an error, but from 80 and above it works. This could indicate that in fact the addresses in the manual are right, since for the coils the first address shown is 80 (the signal START). But the problem is that my indicators never turn on, even when I'm doing something that I know that my indicators should turn on. I don't know if I'm doing it right, but if you watch the attachment, I chose to read starting from address 80 and the next 7 addresses, and I put the indicators hoping that the first one should turn on when the START signal is ON, the last one to turn on when the DATA OUTPUT is ON, etc. That thinking is right or I'm doing it wrong? 

     

    So before contacting the supplier, I would like to ask some simple questions about using the MB Master Query:

     

    1) The numbers in the MBAP Header are relevant? What should I exactly put there?

    2) The MB Master Query works as I thought? (the "Starting Address is the address of the first signal I want to read, and "Quantity" is how many signals right after the Starting Address I want to read? And those coils are individuals according to the signals and should turn on when certain signal is ON?

     

    By the way what you meant about the little routine with known input pattern is what I did? (for example having those 8 indicators and knowing that the first one should be on when I start the fastening and the last one to turn on is the fastening was ok?)

     

    *edit: Now I attempted reading some input registers. I used 8448 as the Starting Address and put Quantity 4, and that should should me the last fastening Year, month, day and hour. It still reads nothing. I tend to think that the address is right and the problem could be something else

     

    *edit2.0: I checked the same I did before about the addresses. The first address for input registers according to the manual is 512. If I put anything below that I get an error, but for my surprise when I put 512 as the starting address it reads something, but I have no idea what it means. In fact the addresses that reads are 513  and 515, which doesn't appear in the manual.

    post-51439-0-54971600-1397572757_thumb.p

    post-51439-0-65337600-1397582752_thumb.p

    post-51439-0-75559300-1397583113_thumb.p

  9. I tested doing just the TCP Open Connection (with port 502 and the IP address of the controller) and TCP Close Connection, and it worked fine. But then I have problems when I enter the Ethernet Master Query. I also checked in the Master Ethernet Example I wanted to use, using the lightbulb troubleshooting feature, that the starting connection works fine, and the problem occurs when the read of discrete inputs starts. 

    So my main problem is probably making the setup of that, with the addresses, the MBAP header, the Modbus command, etc

    .

    It would be great if someone could tell me the basic setup of addresses and that stuff according to the manual I attached previously, to for example read a single coil (let's say the signal "SET CH1"), so I can figure out the basics and then it would be just a matter of making the big code according to what I need.

  10. I can't even know if it's connected right 16x16_smiley-sad.gif

     

    First I opened the Master Ethernet Example and the Slave Ethernet Example, and everything worked fine.

    Now I tried to do it connected with ethernet cable to the controller using the Master Ethernet Example, and set the "Remote IP Address" to the address of the controller (which I already tested with ping and the connection with my PC is fine, and also I have no problem reading and writing with the controller's software). And when I run it, I get the error 56. The error tells me that it happens at TCP Read in MB Ethernet receive.vi:5. I attached the photo of that vi.

     

    I really hope you can help, I need to establish the connection and being able to read/write at least something. 

    post-51439-0-42465000-1397498616_thumb.p

  11. Hi, first of all I want to say that I'm new to Labview, so I'm in the studying phase and I may have very basic questions.

     

    There's a tool that's basically a big screwdriver with a controller that can be programmed to make certain jobs using desired speed and torque,  it's called Handy2000. You can save in different channels the configurations for the different jobs. The controller has its own software, and I can already connect to it and read/write with no problem using an ethernet cable.

     

    I was asked to make an interface in labview to select the channels, show in a graphic way (with photos of the electronic components) what screws correspond to that channel, and show when the steps of a job are done. All of this will be in a panel pc connected to the tool's controller.

     

    Since I'm new to labview and to the modbus protocol, I took some time to study the basics. I understand how the protocol works and the very basics of labview programming, so I have an idea of how the front panel will be and what things needs to be modified. But now it's time to start the implementation, and I'm a little lost on how to make the basic configuration to setup the connection and start writing the addresses on labview. By the way I don't have the DSC module, I only have to use the NI Modbus library.

     

    I already checked the example functions to use my pc as master and slave and watched the codes for the different type of data (coil, input, input register, holding register), but I don't know how I should start programming, and the most important thing is how to make some tests in the process to check that I'm having the communication between the pc and the controller. I already read in the forum and learned a lot, but failed to see as a completely newbie how to make and change the basic setups to make the thing work.

     

    So any help is welcome, specific answers about how to make the basic setup and how to test it, vi examples or basic tutorials to read.

     

    Thanks in advance,

    Stefan Christiansen

     

    p.s: I attached the manual that specifies the addresses for the modbus communication, so if you could give me an example of where I should change the address in the labview code and what should I put  to make a basic read or write it would be very helpful

    Estic Touch Panel Comm. Spec _010-E_.pdf

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.