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.


Messages - Friedrich

Pages: [1] 2
1
You might have a problem with .net library. From the top of my head XP only supports 3.5, while the newer versions of AdvancedHMI compile for 4.X. I think the last solution I did for XP was AdvancedHMI v3.68. Archie might shed some light on when the software was switched over to the newer .net.
You may also be missing some .net libraries if the machine runs XP embedded. You should be able to download and install these from Microsoft.

2
Support Questions / Re: Modbus TCP questions (in Siemens 1200)
« on: September 26, 2017, 01:20:50 PM »
Don't know much about Siemens, but when I use ABB with AdvancedHMI and ModbusTCP I set the ABB as Modbus Server.

3
Gave your program a try with the %M instead of the %R that I used. It worked as well, so your problem is most likely what you do in AdvancedHMI.
Here's the one I made, try it: https://www.dropbox.com/s/036xh2g8376cer8/AdvancedHMI%20389r.zip?dl=0

4
Just tried with the following:

AdvancedHMI 3.99r
Automation Builder 1.2.1.3306
PM554-ETH CPU

It worked without any problem. I've attached the program for the CPU that I tested with. Can't attach AdvancedHMI since the zip is too large.

5
It should work fine, I've deployed 2 HMI's this way.
I have a new CPU that I ordered 2 weeks ago, I'll give it a try with the latest version of AdvancedHMI when I get the time.
I'll post the program for the CPU and the AdvanvedHMI solution here.

Stupid question; Is the CPU in run when you test it?

6
A guide to using AdvancedHMI with ABB AC500 via ModbusTCP

This was tested with:
Automation builder 1.1.0.835
AdvancedHMI 3.98g
PM554-ETH CPU.

I will just assume that you already have a project and controller set up in Automation builder.

1. In Automation builder, doubleclick "Protocols" in the treeview and click the button "Add protocol.." in the window that pops up.
2. Add the protocol "Modbus TCP/IP Server"
3. Doubleclick the newly added "Modbus_TCP_IP_Server" in the treeview.
4. Tab "Modbus TCP/IP Server Settings" - Set server connections to the number of connections that you want to be able to have active at any time.
5. Tab "Modbus Server Settings" - Choose what type of memory you want to read via Modbus (%M or %R). If you want to use variables with retain, choose %R.
6. Done! Start programing!


To be able to read/write variables via AdvancedHMI, you need to assign the variables to memory (either %M or %R, depending on what you configured the protocol for)
Here's an example of a global variable list:


VAR_GLOBAL

Bit0 AT %RX0.0.0: BOOL; (* 00001 *)
Bit1 AT %RX0.0.1: BOOL; (* 00002 *)
Bit2 AT %RX0.0.2: BOOL; (* 00003 *)
Bit3 AT %RX0.0.3: BOOL; (* 00004 *)
Bit4 AT %RX0.0.4: BOOL; (* 00005 *)
Bit5 AT %RX0.0.5: BOOL; (* 00006 *)
Bit6 AT %RX0.0.6: BOOL; (* 00007 *)
Bit7 AT %RX0.0.7: BOOL; (* 00008 *)
Bit8 AT %RX0.1.0: BOOL; (* 00009 *)
Bit9 AT %RX0.1.1: BOOL; (* 000010 *)
Bit10 AT %RX0.1.2: BOOL; (* 00011 *)
Bit11 AT %RX0.1.3: BOOL; (* 00012 *)
Bit12 AT %RX0.1.4: BOOL; (* 00013 *)
Bit13 AT %RX0.1.5: BOOL; (* 00014 *)
Bit14 AT %RX0.1.6: BOOL; (* 00015 *)
Bit15 AT %RX0.1.7: BOOL; (* 00016 *)

Word0 AT %RW0.0: WORD (* U40001 *)

END_VAR



Note 1: Function code 0 can be used for both reading and writing bits, and function code 4 for reading and writing words.
Note 2: Bits and words overlap. This means that the 16 bits in the above example are the 16 bits of the word.
Note 3: The addressing of the bits and words are offset by 1 when using AdvancedHMI (compared to the manual from ABB)
Note 4: The words are unsigned (0-65535). This means that you need to use the prefix "U" when reading/writing them with AdvancedHMI.


Sidenote: If you want to use variables with retain/persistance, don't forget to configure what part of the memory that should be persistent. This is done by doubleclicking the CPU in the treeview and setting a value for the "End PERSISTENT %RB.x". Note that the column Parameter says "byte", and Type says word (!) Don't ask which it is..

This should also work with the bigger CPU's and ModbusRTU if you have one without ethernet (eCo-versions doesn't support ModbusRTU).

7
Support Questions / Re: Unsigned 16bit Integer
« on: May 18, 2015, 11:24:19 AM »
Works like a charm! Great work once again Archie.

8
Support Questions / Re: Unsigned 16bit Integer
« on: May 16, 2015, 05:54:59 PM »
Reading an unsigned works fine with the prefix, but writing anything above 32767 doesn't.
"Failed to write value. The aritmatic operation caused spill"

9
Support Questions / Re: ABB AC500 and Modbus Communication
« on: May 16, 2015, 05:29:54 PM »
Finally got around to playing with the AC500 (PM554) and AdvancedHMI (3.98g). I found this document: http://www402.abbext.com/DownloadFile.aspx?file=UserFiles/Answers201308/ABB-Ac500-Modbus.pdf&filename=ABB-Ac500-Modbus.pdf
To start with; You cannot read or write to I/O directly. You have to assign the variables to memory, just like you found out the hard way.

I played around with some bits and words and got it working after some headscratching. Here's the global variable list I set up with comments which function codes/addresses works:

VAR_GLOBAL
   Bit0 AT %MX0.0.0 : BOOL; (* Read: 10001 - Write: 00001 *)
   Bit1 AT %MX0.0.1 : BOOL; (* Read: 10002 - Write: 00002 *)
   Bit2 AT %MX0.0.2 : BOOL; (* Read: 10003 - Write: 00003 *)
   Bit3 AT %MX0.0.3 : BOOL; (* Read: 10004 - Write: 00004 *)
   Bit4 AT %MX0.0.4 : BOOL; (* Read: 10005 - Write: 00005 *)
   Bit5 AT %MX0.0.5 : BOOL; (* Read: 10006 - Write: 00006 *)
   Bit6 AT %MX0.0.6 : BOOL; (* Read: 10007 - Write: 00007 *)
   Bit7 AT %MX0.0.7 : BOOL; (* Read: 10008 - Write: 00008 *)
   Word0 AT %MW0.0 : WORD; (* Read & write: 40001 *)
   Word1 AT %MW0.1 : WORD; (* Read & write: 40002 *)
   Word2 AT %MW0.2 : WORD; (* Read & write: 40003 *)
   Word3 AT %MW0.3 : WORD; (* Read & write: 40004 *)
END_VAR

Note that the bits are from the first word. The funny thing is that I couldn't write bits or words with any of the intended function codes.
Just take a look at the document I linked for the mapping of the memory. Note that the addressing is completely wrong in it.

10
Support Questions / Re: Who has run applications long term?
« on: February 23, 2015, 11:06:02 AM »
Correction; The program doesn't crash, instead someone accidently opens the form with PLC errors that I made. They thought it was the program crashing :)
That means the program is stable and runs 24/7.

11
Support Questions / Re: Who has run applications long term?
« on: February 11, 2015, 08:00:21 AM »
I have an 3.62 application running 24/7, and has been doing so for the last 7 months. It has occational crashes, but I haven't been able to pinpoint why since the guys who use it just starts the program again.
Running on a panel-PC with WinXP 32-bit embedded.
PLC is a SLC5/03 connected via RS232 (DF1).

12
Support Questions / Re: Digital panel meter and floating point
« on: October 09, 2014, 03:31:52 PM »
Glad it worked out for you! Are you still using two com.drivers?

13
Support Questions / Re: Digital panel meter and floating point
« on: October 09, 2014, 02:02:37 AM »
The problem seems to be very related with the one I had. Floating points are 32 bits, so if the problem specificly concerns the "space" (bits) between variables that are being read, then you need to reduce the space between your floating points:
20 * 16 bits = 320 bits
10 * 32 bits = 320 bits

Simple thing to do is to make a new project and add component by component and see when you get the "IndexOutOfRangeException". Once you get it, you can fiddle around with adressing and whatever you want to until you find what is causing the problem.
I don't know what version of AdvancedHMI you are using right now, but you could try 3.6.2.

14
Support Questions / Re: Digital panel meter and floating point
« on: October 06, 2014, 10:54:14 AM »
I haven't tried reading any floating points, but I had another issue with reading bits; http://advancedhmi.com/forum/index.php?topic=377.0
I don't know if this issue has been resolved, or if it's even the same issue with the EthernetIPforPLCSLCMicroCom1.
But it's easy to test, just decrease the "gap" in adressing of the floating points and see if it works.

15
Support Questions / 3.6.8 DF1 crash when opening multiple forms
« on: September 02, 2014, 02:45:00 PM »
There seems to be a problem with the new 3.6.8 and having two windowforms with the DF1 driver.
When you open the second form the program crashes.
If you don't read anything on the second form it doesn't crash, so it seems to be a conflict with the com. between the two forms. Everything works with 3.6.1.

Pages: [1] 2