Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Noe

Pages: [1] 2
1
This was sent to me by our senior CE. Just sharing with you guys, I do not know if this has any effect over AHMI or its usage with OPC servers.

2
For all of us who are not versed in Modbus, I received a bulletin from RTA Automation with this very practical description on how it's based, so I wanted to share it. Hope is useful for someone.

Quote
Registers and Coils

Coils are single bits. They can be ON (1), or they can be OFF (0). Some coils represent inputs, meaning they contain the status of some physical discrete input. Coils can also represent outputs, meaning that they hold the state of some physical discrete output signal.

Registers are 16-bit unsigned register data. They can have a value from 0 to 65535 (0 to FFFF hexadecimal). There is no representation for negative values, no representation for any values greater than 65535, and no representation for real data such as 200.125.

Applications can impose these representations on registers. For example, an application can treat two registers, the first containing 200 and the second containing 125, as 200.125. Any application can organize and treat register data in any way it may want, but there is no way for any other Modbus device to automatically know what that representation is. A Modbus application that reads registers from a Modbus slave device must have some prior knowledge of how particular registers are treated to process them correctly.

Registers are grouped into input registers and holding registers. Like input coils, input registers report the state of some external input as a value between 0 and 65535. The original intent of an input register was to reflect the value of some analog input. It is a digital representation of an analog signal like a voltage or a current. Most Modbus devices today are not I/O devices and input registers simply function identically to holding registers.

Holding registers were originally designed as temporary program storage for devices like Modbus controllers. Today, holding registers function as data storage for devices. Both Modbus registers and coils are addressed with the first register or coil as Address 0 and the last as Address 65535. That means that there can be up to 65535 (FFFF Hex) input registers, 65535 output registers, 65535 input coils and 65536 status coils, but most devices use far fewer. The typical address space notation used in Modbus follows:

0x is Status Coil Address Space from 00000 to 065535
1x is Input Coil Address Space from 10000 to 165535
3x is Input Register Address Space from 30000 to 365535
4x is Holding Register Address Space from 40000 to 465535

When you see a notation that some value is at Modbus register 40010, you know that the value is stored in a holding register at offset 11, the 11th value, in the holding register area of the device. When a Modbus device is designed, the designer makes a decision of not only how many registers or coils are needed, but also which address space to use (input coil, status coil, input register, holding register) and where in that address space to locate those values. That example points to one of the deficiencies of this data representation. There are no standards.

There is no way to communicate to the user of the device any metadata. If the value of register 40100 is a temperature, there is no standard way to communicate the meaning of register 40100 and how to interpret the data. The user has no information to know if a value of 1001 means 100.1 degrees or 10.01 degrees or 1001 degrees. There is no standard regarding device profiles. Another temperature controller may store its temperature at 40200 and use a completely different data interpretation. The Modbus data representation is simple and almost standards-free. That is both a blessing and a curse to those of us who still use Modbus daily.


3
I know Advanced HMI pretty well now. But now I am struggling with Profinet as all our new machines, because a new policy from management, has to have Siemens controllers.

I'd been developing small applications to communicate with Siemens, using Libnodave, but always get to the same point that after certain amount of variables being read, my UI start becomes sluggish or locking up for a brief moment. This is due I call the read variable subs based on a timer, so I can constantly refresh their read values. I've tried  to use background workers or threads, with no success. Still not giving up on this, but does someone knows any open source project or comercial driver that has a similar functionality than AHMI that does use multithreading?

AHMI does have a modbus TCP driver to communicate with Siemens (already tried that), but this solution is not what we need, it has to use Profinet.

I need to stop wasting time trying to find a way how to do something that has been already developed, and dedicate my time into my main task which is programming an application.

Sorry if all this sounds confusing, but with all my work load I have not been sleeping very well and now is starting to really affect me.

Just want to hear some recommendations on what to do with Siemens, as in a matter of months we received and launched more than 40 machines with it (with all that implies), and we lost the great development ease intended by Archie with AHMI. Now I can really appreciate the simplicity implied, like just drag and drop a basic label and do not have to worry for other things than developing your app.

I ask in this forum and not in other PLC specialized ones, as I've seen this place where people come to learn PLC and VB.NET programming, rather than just each one apart.

Any comments?

4
Open Discussion / KepwareServerEX 6.4 remote access
« on: June 20, 2019, 06:24:09 PM »
I am new to OPC, but been reading a lot here and there about how they work. This is my first attempt to use an already installed functional Kepware server, that has tags available from a Siemens PLC by Profinet. I ran Matrikon OPC Explorer directly on the Siemens IPC where the server is installed and I was able to connect with no issue. Now trying replicate this from my laptop connected directly to the machine LAN, same client, correct IP address (I am controlling the IPC with Team Viewer), but no luck, everytime the Matrikon OPC Explorer would tell me there is no OPC server installed in the remote host.

I've changed the Kepware setting to allow remote connections, but I cannot find other configuration or manual that could make it work.

Is there any configuration or procedure I am missing to become the server available to remote clients? Anyone here with some experience with Kepware?

5
Support Questions / Unknow error 275 using RTA Automation 515RTAENI
« on: January 17, 2019, 06:44:32 PM »
Hi all. I created an app that allows me to print some information from the PLC. I was using EthernetIPforSLCMicroCom driver with no issue, the PLC is a MicroLogix 1500 LRC Series C with a 1761NET-ENI (Ethernet/IP to RS232 converter from Rockwell). Because the serious limitations on the NET-ENI (only 2 open sockets at the same time are possible) and in the need of connecting more devices to the PLC to exchange data, we installed a new device to substitute the NET-ENI, a RTA Automation 515RTAENI, which has a 6 sockets limit that will provide all the connectivity we need.

Problem is that now Advanced HMI cannot be used to communcate with the PLC (using v399yBeta14). I have tried EthernetIPforSLCMicroCom, EthernetIPforCLXCom, EthernetIPforPLC5Com and even SerialDf1overTcpForSLCMicroCom but no joy (see attached images).

First I had an error in the basic label with the legend "Unknow error 275". But after some time all I can get is "No response from forward open" with EthernetIPforSLCMicroCom (which was working fine with NET-ENI).

EthernetIPforCLXCom error is "No response from PLC 31.80.16.1, slot = 0"

EthernetIPforPLC5Com error is the same as EthernetIPforSLCMicroCom

SerialDf1overTcpForSLCMicroCom just wont throw anything at all


Have someone used these with Advanced HMI? I know NET-ENI is dead for Rockwell, so I guess someone will have to use it eventually. For us, the possibility to migrate the machine to a modern architecture is not feasible.

In case somebody wants, I can provide more information.

6
Open Discussion / Siemens driver development for AdvancedHMI
« on: June 25, 2018, 11:03:01 AM »
Archie, I have found some post in PLCS.net where you mention like one year ago you started to develop a Siemens Ethernet driver. Just wanted to know if you are still on the project?

Seems that Siemens is gaining strength in America, mainly because of price.

7
Support Questions / Modbus TCP questions (in Siemens 1200)
« on: September 26, 2017, 10:29:25 AM »
I have been commisioned to find a way to communicate an Advanced HMI VB.net project we actually have in communication with 5 rockwell PLC's, to add a new machine with a Siemens 1200 PLC. We have to read and write an integer variable and a couple of strings. If possible, I want to use the same controls: datasubscriber and its evets like data changed for the integer (string will be read and written by code).

Is it possible on this protocol?

Sorry if this is a noob question, I am just starting with Siemens and never used Modbus before.

8
Support Questions / Reading from a module, not a form
« on: January 25, 2017, 10:41:07 AM »
Is there a way to create a module in VB and read the PLC directly from code? I've tryed it but as you can imagine, it fails as does not see EthernetIPforSLCMicroCom1 as declared.

9
Support Questions / Upfrading from olde version (before v3.5) to 3.99t
« on: January 20, 2017, 01:32:46 PM »
Hi all. I am woring to migrate an old project based on AHMI 3.27 (I think, someone deleted the reference) to 3.99t as I am having a lot of issues to communicate to a MicroLogix using Net-Eni. Seems that the old version dirver was not working correctly, but current version seems to work just fine.
My question is, when importing the .vb form I now I have to correct all errors before having access to designer mode, but AHMI controls seems to have changed properties, and I am not sure which belongs to which.

These are the properties that are being shown as incorrect:

        Me.status3st.PLCaddressEntry = ""
        Me.status3st.PLCaddressText = "N7:93"
        Me.status3st.PLCaddressVisibility = ""
        Me.status3st.ScaleFactor = New Decimal(New Integer() {1, 0, 0, 0})
        Me.status3st.TextPrefix = Nothing
        Me.status3st.TextSuffix = Nothing

Can I use these new properties? I am really unsure with scalefactor:

PLCaddressEntry = PLCAddressKeypad
PLCaddressText = PLCAddressValue
PLCaddressVisibility = PLCaddressVisible
ScaleFactor = Scale or KeypadScaleFactor
TextPrefix = ValuePrefix
TextSuffix = ValueSuffix

10
Support Questions / 1761-Net-Eni with AHMI
« on: October 04, 2016, 03:58:51 PM »
Can anyone tell me if 1761-NET-ENI can be used with AHMI? I am trying to run tests, but I am getting an error with version 3.99r.
I downloaded the latest version from the web, opened up in VB Community 2013, opened the project and built it. Added a EthernetIPforSLCMicroCom1 driver, changed the IP to match the current NET-ENI IP address, and added a basic label pointing to ST12:0 in PLCAddressValue.

Got an error for "mscorlib.pdb not loaded",  "An unhandled exception of type System.Reflection.TargetInvocationException' occurred in mscorlib.dll    Additional information: Exception has been thrown by the target of an invocation."

See full error screen as attachment. Not sure what this is related to, but I assume is related to NET-ENI.

11
Support Questions / Getting PLC IP address when using CLX.ini as address
« on: October 30, 2015, 11:20:21 AM »
Hi Archie. I used the CLX.ini file option to set the PLC IP in a settings file to store and change my driver IP, but I want to display in a label the IP address, if I set the "EthernetIPforCLXCom1.IPAddress" I would get "CLX.ini". Is there another way to read IP value?

12
Support Questions / Is there a way to change annunciator back color?
« on: August 03, 2015, 01:16:42 PM »
I was trying to fin a way to change the annunciator background color, as it functions a great subtitute of buttons, allowing a better view of text without much graphics. Anybody knows how to change the default red, if possible, to have several annunciator with different colors?

13
Have someone noticed that the data chaged event for data subscribers triggers twice or sometimes more?

I use AHMI v3.6.2 in a project we started but was put on hold months ago. Updating to "after v3.8.0" version it will be unlikely as we only use a simple tags monitoring. We connect to two Compact Logix and monitor only a couple of string tags in each of them. One of those tags holds a number and on the change event I analize its value with a case function. What I see when debugging, is that the event starts and finishes normally, then starts over without having to change the value contained in the data subscriber, executing the same code again. No problem so far, as my code will not have a negative effect from that, but I do not like the idea when I use something that has to be executed just once.

I'm on VB.net 2013, pro edition.

14
Hi everyone.

Maybe this has been answered before, but I am not able to find it. I just downloaded the version 3.6.4 and when I try to add an AdvancedHMI control from the toolbox, there are none available. I even tried to add them manually but seems to not be registered. I opened v3.6.2 and v3.6.1 backups I had laying around, and noticed the same behaviour. I opened some old projects that I have with version lower than v3.5 (not sure which one exactly) and the controls are there! I tried once again the post-3.6 versions, but controls are absent.

Is this a VB project related issue? How to solve it?

15
Support Questions / Datasubscriber controls disappear from design
« on: August 06, 2014, 10:12:42 AM »
Hi all.

I've just started using the datasubscriber control, but after a while it vanished from the design window, even that in the code the control is still valid. If I want to change the address of the PLC variable to monitor, this will not allow me as control and its properties are not show, so I need to set a new ds control and rename it in the code to be able to.

Did somebody stumbled into this? Is there any way to recover those controls in design?

Pages: [1] 2