05-15-2012 11:36 AM
Hi all, I'm new around here. I need some help, I need to communicate a controller (as an agent) that supports NTCIP with a PC (server) using SNMP but I don't know where to start, I have gone through a lot of research about NTCIP & SNMP but I have no clue where to start neither how to create a MIB with labview. In the beginning I want to ask the controller for data objects it has stored, and later on I want to modify them.
I already downloaded the snmp toolkit from lava forum
Any help you can give me will be really appreciated
05-15-2012 12:59 PM - edited 05-15-2012 12:59 PM
There are no NI supplied SNMP libraries that I am aware of.
My company uses the SNMP Toolkit for LabVIEW which works well.
05-15-2012 02:09 PM
I do have a SNMPv1 toolkit that I found on LAVA, but my question is that I don't know where to start my project although I already went through NTCIP and SNMP documentation I'm totally lost about creating the MIB, how to pass the objects and in the end, how to communicate with the controller using SNMP
05-15-2012 02:36 PM
For creating a MIB I would look for some MIB editors. It will help you to format the MIB correctly. The LabVIEW code will not use the MIB file itself unless it has the capability to compile a MIB. If you are using the one off LAVA it is a good bet it is the one I wrote. This library will not compile the MIB.
SNMP it self is nothing more than a tree structure. The OIDs are the unique identifier within the tree. So, for the standard MIB definition for the sysDescr the OID would be 188.8.131.52.184.108.40.206. Most MIB browsers would show this looking something like:
If you are defining your own MIB you would need to register your enterprise. This is free but is reserves a branch in the enterprise branch for your company. This is not absolutely required provided you never connect to a network that would have devices of whatever enterprise ID you chose to use. However, it would be best to register your ID.
Create of the structure is up to you. How you group things, whether it is a table or a single element, etc. is all a mater of how you define your data. No one can really give you an answer on that without seeing what data you want to manage and what exactly you will be doing.
Accessing data is generally performed using simple messages (PDUs in SNMP parlance) using the OIDs. To read data you specify an OID and whether you want to read that exact value or the next value in the MIB tree. To set an element you have to provide the OID, type and value for the element. In SNMPv1 all data must be set individually. That is, to set a table you have to set each value using it's OID, type and value.
I would suggest you pick up a basic SNMP book to help you along. The protocol itself is pretty easy. Defining a good MIB is the hard part. Mind you, the mechanics of defining a MIB is easy. The hard part is determing what you want to manage and how it should be organized.
05-16-2012 08:36 AM
It appears that NTCIP defines a standard protocol based on SNMP for communicating with traffic control equipment.
If you are communicating with a controller that is compliant, you should be able to use the information in the MIB(s) defined by NTCIP, which should be available from
05-16-2012 03:23 PM
Indeed I need it to get information stored in a traffic controller, I guess the idea is that since NTCIP is based on SNMP and UDP I would only have to open the UDP port, then use the SNMP Get Request to communicate with the controller indicating which variable I want to get (assuming that at this point I will already know what is stored in the MIB), later use the Get Response VI to get the info back, and finally close the UDP port, is this assumption true?
05-16-2012 10:08 PM
05-17-2012 09:33 AM
okay, this is what I have so far, but I'm not sure what other things I would need to do in other to get the variables that I need, since it looks to small for me, considering that I'm going to work with a Peek ATC-1000 (NTCIP compliant) controller and request information from its MIB such as green time, pedestrian walk time, etc and later on I also would like to change some of its parameters although that I know that would be with SET instead of GET, but first of all I just plan to get the variables stored in the controller. Any suggestions to improve this first step that I have done here?
05-17-2012 10:25 AM
Since you are using my SNMP code you should use the SNMP Open and SNMP Close VIs that are part of teh library. You will also need the correct OIDs for the data elements you want to retrieve. Make sure that you are using the correct Community Names as well. You could also try running the MIB Walk example that is part of the library to see what data you get back.
05-17-2012 10:59 AM
let me see if I am getting it right, you are saying that I should use SNMP open and close instead of UDP open/close. and when you say to use the MIB walk example you're refering to the MIB Walk Vi right? or is the example in a different folder?