Khong Ni Plc Vi Wincc Runtime Adviced Phn Conected Trong Device Trong Tia V13 Sp2 C
It's back!When V13 SP1 was first released, one of the features I was most excited about was the ability to multiplex arrays of custom UDTs on a PLC using a simple index tag on an HMI. This feature allowed me to use a single faceplate or screen to display or modify data from multiple objects by simply changing a single tag.
I was so excited, I even about it then! Unfortunately, it was a feature to be short lived and, due to some unexpected consequences, mysteriously disappeared with the release of Update 3.Now that has been released, the very first thing I did was look to see if it was back. And I'm in luck!While I've gone into some detail in my previous, and all of the same information is relevant, here's a really quick demo to set up multiplexing of an array of UDTs from your HMI.First, I've created a really simple project with a S7-1200 (FW v4.0) and a TP700 Comfort panel (Version 14.0.0.0). To make things simple, I've grabbed a UDT ( udtHMIVFDControl) from the, and added it as a type to my Project Library (this will allow me to use it within a faceplate later), and then copied from my Project Library to my PLC (under PLC Data Types). Next, create a new data block on your PLC - I've called mine ' dbDemo.' Inside of my Data Block I've created a single array of VFD's.Next, open up the Default Tag Table on the HMI.
WinCC Runtime Professional. † WinCC (TIA Portal) is based on the new central engineering framework Totally Integrated Automation Portal (TIA Portal), which offers the user a uniform, efficient and intuitive solution to all automation tasks. † WinCC (TIA Portal) also offers uniform engineering from the Basic Panel through to the SCADA. 2 Software STEP 7 Professional V13 (Totally Integrated Automation (TIA Portal V13) 3 Ethernet connection between PC and CPU 1516-3 PN/DP. The programmable logic controller (PLC) monitors and controls a machine or a. Creating visualization for SIMATIC basic panels with integrated WinCC Basic.
Add a new internal tag called ' Index' of type 'UINT.' Now, in your project tree, select the DB you previously created, and from the details view, drag any one item from your array of VFDs into your tag table to create a new tag of type ' udtHMIVFDControl' - you can use the blue 'tag' icon that shows up in the detail view to grab the tag. I've named mine ' IndexedVFD.' Note that as of right now, this tag is linked directly to a fixed item within your array - in my case, ' dbDemo.VFD1.'
We want to modify this so that our ' Index' tag will change which item in the array we want the tag to link to so we can multiplex this tag across multiple VFDs from our HMI. To do this, select the 'Address' dropdown under the properties of the tag. For 'Index Tag,' change the selection to 'HMI Tag' and choose the ' Index' tag we created earlier.Notice that in your tag table the address has changed to indicate the position in the array is defined by our' Index' tag. And that's it!
Now, we can change ' Index,' either through a script or by a control on the HMI, and our multiplexed tag will look at a different item in our array. In the screenshot below, note that our ' IndexedVFD' is now linked to any VFD in our array using the ' Index' tag.To take this a step further in your quest for object oriented programming, take another look at my previous. It will take you through linking your multiplexed tag to faceplates and popups - which is where this feature will really help you develop better, more powerful, HMIs.One more helpful hint - you will find that your index on the HMI will be zero based, regardless of the way you define your array on the PLC. For example, if I defined my array (on the PLC) to be 1. 20, an ' Index' of 0 will actually access the first element, 1, in my array.Enjoy! Thursday, September 14, 2017 10:02 AM Jason,Thanks for your blog post. It gives a clear explanation of a function I am trying to implement.However, I am using TIA V14 and I am trying to index/address an array using another tag but running into a bit of difficulty.I have followed the instructions in the above and previous post.
But when I get to the stage of: 'Select the empty drop-down box for 'Address' and choose 'HMI Tag'. Now, navigate to your HMI tags and select 'Index,', that field is greyed out and not accessible.The only real difference I can see between your project and mine is that I am developing a HMI runtime server to be accessed by thin clients compared to your project that has a regular TP Comfort HMI. DO you know if this is the reason that I cannot access that functionality? Anything you could add would be greatly appreciated.Kind regards,James. Monday, April 10, 2017 11:22 AM Hey Jason,thank you for your brief, yet comprehensive example. I would like to use multiplexing very much, but I can see one major dealbreaker when using arrays: Single elements of an array cannot be named, thus making it really difficult using them in the PLC code.
For example we might name one instance DB of FBValve 'iDBblowOffValve4Y1' and another one 'iDBwaterValve3Y3'. If I were to name them 'valve1' and 'valve2' I'd have to keep a separate record of which valve is which. Do you have any solution for this problem?Cheers, Jan. Monday, March 13, 2017 4:28 PM Pepijn,I originally used v14, but I just tried opening the project with Update 2 and do not have any issues.
I am able to recreate it, with no issues, using the method at this link: a starting point, try dragging and dropping one element of your array from the PLC DB to the HMI Tag list. Then, in the tag properties under 'Address', change the selection for Index Tag to HMITag. Now you can choose an index tag to multiplex the array on the PLC.
Hope this helps! Monday, December 12, 2016 3:21 PM Olgierd,For your first point, I believe that is incorrect. By adding the UDT to the project library as I did in the example above, you can use the UDT as the interface for a Faceplate - so you only need to link a single tag instead of each element. Please see the other post I linked showing you exactly how to do this.
On your second point, yes, I can see this being a drawback. However, you can set dynamic limits (linked to another tag). This dynamic limit could easily be linked to another multiplexed tag which gives you limits depending on the index selected. In short, I don't think either of your points being deal breakers.
NI-Industrial Communications for CANopen 1.0.2 HelpEdition Date: July 2012Part Number: 373254C-01»Owning Palette:Creates an interface, a transmit- (TPDO), a receive-process data object (RPDO), a object, a object, a (SYNC) object, an (EMCY) object, or a CAN frame read object. You must manually select the polymorphic instance to use.When you create objects on a CANopen network, ensure each object that receives data, such as RPDOs, SDOs, heartbeat objects, node guarding objects, and emergency object, has a unique COB-ID. Otherwise, this VI returns an error.This VI is not optimized for.Use the pull-down menu to select an instance of this VI. Interface name specifies the name of an interface that you want to create. The name of an interface must be CANopen XX, where XX is the interface number. The maximum interface number is 32.You can use Measurement & Automation Explorer to view the mapping relationship between each interface name and each specific piece of hardware.baud rate specifies the baud rate of the CANopen interface.termination? Indicates whether to use the onboard termination of the NI-CANopen interface.
The termination is a 120 Ω resistor.In a typical High-Speed CAN network, the termination of the network is on the BUS. However, you can use the onboard termination to simplify testing. Set termination? To True to use the onboard termination. The default is False.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.interface object out returns the interface that you created.error out contains error information.
This output provides standard error out functionality.node-ID specifies the node-ID of a device for which you want to create a PDO.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network.
You can create an interface by using the CANopen Interface Create VI.PDO channel specifies a channel of the PDO. This VI uses PDO Channel and COB-ID to calculate the effective COB-ID.COB-ID specifies the COB-ID of the PDO. The default is 0. CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs. If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI calculates the effective COB-ID by adding node-ID and the base COB-ID of PDO Channel. Otherwise, this VI ignores node-ID and PDO Channel and uses COB-ID as the effective COB-ID.error in (no error) describes error conditions that occur before this node runs.
This input provides standard error in functionality.buffer size specifies the maximum number of CAN frames that the TPDO receive buffer saves. The buffer is a first-in-first-out buffer. The default is 0. If buffer size is 0, the receive buffer contains only the latest received CAN frame. If buffer size is greater than 0, the TPDO keeps CAN frames in a queue when the TPDO receives CAN frames. If the TPDO receives more CAN frames than buffer size, the TPDO returns an overflow warning.interface object out returns the reference number of interface object in.TPDO object out returns the reference number of the TPDO object that you created.error out contains error information.
This output provides standard error out functionality.node-ID specifies the node-ID of a device for which you want to create a PDO.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network.
You can create an interface by using the CANopen Interface Create VI.PDO channel specifies a channel of the PDO. This VI uses PDO Channel and COB-ID to calculate the effective COB-ID.COB-ID specifies the COB-ID of the PDO. The default is 0. CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs. If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI calculates the effective COB-ID by adding node-ID and the base COB-ID of PDO Channel. Otherwise, this VI ignores node-ID and PDO Channel and uses COB-ID as the effective COB-ID.error in (no error) describes error conditions that occur before this node runs.
This input provides standard error in functionality.interface object out returns the reference number of interface object in.RPDO object out returns the reference number of the RPDO object that you created.error out contains error information. This output provides standard error out functionality.node-ID specifies the node-ID of a device for which you want to create an SDO.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network. You can create an interface by using the CANopen Interface Create VI.client COB-ID specifies the COB-ID of the SDO client. The default is 0.If client COB-ID is 0, this VI calculates the effective client COB-ID by adding node-ID to a constant. The CANopen protocol defines the value of this constant.
Otherwise, this VI ignores node-ID and uses client COB-ID as the effective client COB-ID.server COB-ID specifies the COB-ID of the SDO server. The default is 0.If server COB-ID is 0, this VI calculates the effective server COB-ID by adding node-ID to a constant. The CANopen protocol defines the value of this constant. Otherwise, this VI ignores node-ID and uses server COB-ID as the effective server COB-ID.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.interface object out returns the reference number of interface object in.SDO object out returns the reference number of the SDO object that you created.error out contains error information. This output provides standard error out functionality.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network.
You can create an interface by using the CANopen Interface Create VI.COB-ID specifies the COB-ID of the SYNC object. The default is 0.
CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs. If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI uses the effective COB-ID 0x80.
Otherwise, this VI uses COB-ID as the effective COB-ID.Note You can create only one SYNC object in a CANopen network.counter overflow value specifies the value of the object. The valid range of counter overflow value is 0 and 2 to 240. How to clear nexus mod manager.
The default value is 0.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.interface object out returns the reference number of interface object in.SYNC object out returns the reference number of the SYNC object that this VI created.error out contains error information. This output provides standard error out functionality.node-ID specifies the node-ID of the device for which you want to create a heartbeat object.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network. You can create an interface by using the CANopen Interface Create VI.COB-ID specifies the COB-ID of the heartbeat message.
Wincc Rt Advanced Manual
The default is 0. CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs. If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI calculates the effective COB-ID by adding the node-ID to 0x700 (1792 dec).
Otherwise, this VI uses COB-ID as the effective COB-ID.consumer time specifies the maximum time, in milliseconds, between the transmission of two subsequent heartbeat messages.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.factor specifies a tolerance factor of consumer time. The default is 2.
LabVIEW multiplies consumer time by factor and uses the product as the timeout of consumer devices.interface object out returns the reference number of interface object in.heartbeat object out returns the reference number of the heartbeat object that you created.error out contains error information. This output provides standard error out functionality.node-ID specifies the node-ID of the device for which you want to create a node guarding object.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network.
You can create an interface by using the CANopen Interface Create VI.COB-ID specifies the COB-ID of the node guarding message. The default is 0. CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs. If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI calculates the effective COB-ID by adding the node-ID to 0x700 (1792 dec). Otherwise, this VI uses COB-ID as the effective COB-ID.guard time specifies the time interval, in milliseconds, that the node guarding master sends requests to slave devices.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.interface object out returns the reference number of interface object in.node guarding object out returns the reference number of the node guarding object that this VI created.error out contains error information.
This output provides standard error out functionality.node-ID specifies the node-ID of the device for which you want to create an EMCY object.interface object in specifies the reference number of an interface object. This object is an interface to the CANopen network. You can create an interface by using the CANopen Interface Create VI.COB-ID specifies the COB-ID of the EMCY message. The default is 0. CANopen uses 11-bit COB-IDs and supports 29-bit COB-IDs.
If the COB-ID is a 11-bit COB-ID, the bit 29 (0-based) should be 0. If the COB-ID is a 29-bit COB-ID, the bit 29 (0-based) should be 1.If COB-ID is 0, this VI calculates the effective COB-ID by adding the node-ID to 0x80 (128 dec). Otherwise, this VI uses COB-ID as the effective COB-ID.buffer size specifies the maximum number of EMCY messages that the buffer saves. The buffer is a first-in-first-out buffer. The default is 0. If buffer size is 0, the buffer keeps only the latest EMCY message. If buffer size is greater than 0, the EMCY object keeps EMCY messages in a queue when the object receives EMCY messages.
If the object receives more messages than buffer size, the object returns an overflow warning.error in (no error) describes error conditions that occur before this node runs. This input provides standard error in functionality.interface object out returns the reference number of interface object in.emergency object out returns the reference number of the EMCY object that this VI created.error out contains error information. This output provides standard error out functionality.interface object in specifies the reference number of an interface object.
This object is an interface to the CANopen network. You can create an interface by using the CANopen Interface Create VI.buffer size specifies the maximum number of CAN frames that the buffer saves. The buffer is a first-in-first-out buffer. The default is 0. If buffer size is 0, the buffer keeps only the latest CAN frame. If buffer size is greater than 0, the CAN frame read object keeps CAN frames in a queue when the object receives CAN frames. If the object receives more frames than buffer size, the object returns an overflow warning.error in (no error) describes error conditions that occur before this node runs.
Wincc Runtime Advanced
This input provides standard error in functionality.CAN frame read object out returns the reference number of the CAN frame read object that this VI created.interface object out returns the reference number of interface object in.error out contains error information. This output provides standard error out functionality.