arkansascontrols

MrPLC Member
  • Content count

    10
  • Joined

  • Last visited

Community Reputation

0 Neutral

About arkansascontrols

  • Rank
    Sparky

Profile Information

  • Country United States
  1. Corrupt HMI Server in Factory Talk View

    I found that I can use the 'Add Component into Application' function to bring the physical display files into the new application, just like I do with Parameter files and trend templates and everything except the graphics come over, so I can just import the graphics and voila.
  2. I have a new installation of FTV 5.10.00 CPR 9 SR 2. I was developing my application and started having computer problems. The normal sort of Windoze problems that force us to reformat and reinstall periodically. It had been well over a year since my last refresh so I figure I was doing pretty good. Long story short, when it finally bought the farm, I was able to get FT Admin Console up long enough to backup my project, then used the Project Backup utility to backup the directory. Having had issues with RSView in the past I also made a manual copy of the entire HMI directory as well. Nice clean PC, fresh install of FTV, I restored the directory, restored the application and when I load FTV Studio it fails to syncronize the tag database, then sits there with a message in the immediate window that says my hmi is loading......forever. To ensure it wasn't a configuration issue I created a new project, the HMI server loads just fine. I tried creating a new HMI server based on a copy of the old one. Same issue as original HMI server. So apparently it is corrupted. Now, I don't mind importing the displays and tags, and parameter files and trend templates into a new project if that's what it takes, but I didn't export them before my PC went down, I just did a backup. So the displays, tags, parameter files, trend templates, data log models don't show up to export. I can't import the displays without the XML files which are created during the export process. Now actually I can recover the trend templates and parameter files (they're physical files that can be copied and added in) and my tags originally came from a spreadsheet which I still have so that's not a problem. But the Displays represent the most labor intensive part of the recovery. I had a lot of hours in those displays and the VBA code that was attached to them. I have not been able to figure out a way to get those displays into a new project without the XML import files. Does anyone know of a way to repair a corrupt HMI server? Does anyone know of a way to at least recover the VBA code that was attached to the displays, or better yet the entire display code and all? Any help would be appreciated.
  3. STL to LAD/FBD

    Open LAD FC and click on View-->STL, then enter this; A I 1.0 AN M 2.3 A( O I 4.3 O M 0.0 ) AN I 0.3 AN M 0.4 = M 0.0 A( O I 0.1 O M 0.1 ) A M 0.0 = M 0.1 then click View --> LAD.
  4. Question About S7 ANY Pointers

    Groo, Thanks for the reply. And I should at least mention that I had posted the question here before I saw the responses on the other forum. I suppose I'm asking the question in the wrong way, I guess I'm thinking more along the lines of pointers in C++. Keep in mind that as with all of my questions, I'm looking for methods of automating incremental or repetitive tasks that I will call more or less exclusively from Ladder Logic NOT STL. More to the Point specifically, I'm looking for ways of making my Ladder logic in S7 look and feel as close as possible to the Look and Feel of the program that I've written and honed for years in AB on similar furnaces.The type of clients that my company serves do well to follow basic Ladder, much less Textual Code. So much of what I would do essentially without additional effort in AB I'm having to write STL functions for that I can call from my Ladder Logic. Like Computes, Limits, Indirect Addressing of Array Elements etc. With that mouthful said, what I'm specifically trying to accomplish here is to modify my 'Limits' function to work with any type of variable I pass to it. I have a very basic 'Limit' Function that takes a High Limit, Low Limit and Test Variable and outputs a bool if the Test is between the Limits. I have it But there are instances where I may want to pass a 'Hard Coded' number as either the HL or the LL or both, while passing either a memory variable or even a value within an array as the test. There are other times where I may pass two different arrays for the HL and LL with a Memory Variable or Hard Coded Number or an array as the TEST. In essence I'm looking to recreate the AB Function LIM which accepts SINT, INT, DINT, REAL as Immediate or Tag values for any combination of the three inputs, with the ability to pass an indirect address to any of the inputs in some of my embedded loops. I hope that makes more sense.
  5. RSlogix 5000

    Alaric, You are right regarding the set and reset of the individual bits, I was simplifying to show how to access the individual bits, and did not intend for the code to be usable thus the generic tagnames. BTW, in RSLogix5k you definitely can access individual bits of a REAL, DINT, or INT by either method I illustrated.
  6. RSlogix 5000

    In Ladder Logic simply drop an XIO in a rung with address out_real.x and energize an output to some_int.y alternately if want to you to do this in Structured Text you would do something like this; if Out_Real.14 then some_int.0 := 1; end_if;
  7. Question About S7 ANY Pointers

    If I pass an array [with element number] to an ANY pointer, where is the index (or element) number of the passed array kept in the pointer structure? If I pass an array [without the element number] to the ANY Pointer then I get; Byte 0 --> 16#10 ????? Byte 1 --> Data Type of the Array Byte2-3 --> Number of elements in the Array Byte 4-5 --> DB Number Byte 6-9 --> Data But if I include the index as part of the array argument then where is the index stored? Thanks in advance for your assistance. P.S. If anyone can explain byte 0 to me I would be most appreciative.
  8. RSView SE and UDT's in ControlLogix

    I'm afraid that every container is displayed simultaneously. An indirect expression would be perfect but how do you index through even a small number, I've not been able to figure out an effective way to index through at all, other than one by one, or with static lines of VBA code?
  9. Rsview SE

    There may be other ways to accomplish this, but one way to get the job done is to create a reference tag in RSView and assign it as the tag for the NumericInput on the other screen, if the NumericInput is writing a value to your PLC then be sure to assign the Datasource for your reference tag to the actual DataSource in the PLC. Then in your VBA code you can simply write it like this; dim Data as Integer Data = My_New_HMI_INT_Tag Data = Data * 123 - 2 I have a NumericInput in a display and I want to use in VBA. ex: dim data as integer data = Me.NumericInput1.value data = data * 123 - 2 This VBA is work but I want to use the NumericInput1 of a other display. Can you help me ?
  10. I have a material handling application controlled by multiple ControlLogix Processors. Data regarding product details for each possible position in the system is stored in a LARGE array of tags based on a UDT that is quite complex. My RSView SE application has a screen that displays the location of each product container in the system that can be clicked for details about that particular containers product. This information is read from element(x) of the MyBigUDT Array. Now the customer wants to see color coding of the containers from the main display screen based on product codes. So my problem is this; 1. I can go to each screen element and write an expression in the Animation->Color dialog to change the color based on the product id (which is a subelement of the MyBigUDT Array), however this will require writing almost 1000 unique expressions for each of the container objects, which I obviously don't want to do. 2. I can write VBA Code to change the color of each container object, however since the container objects in RSView cannot be an Array of objects and VBA will not allow you to build Object, Variant or String Variable Names by combining text and string converted numbers, then my only option is to write almost 1000 unique lines of code to change the color of each container object. So my question to the guru's is this; Is there a work-around for the RSView Limitation of creating arrays of screen element(such as polygons, numeric data displays etc.) Such as some other method of indexing through multiple identical elements on the screen? And, is there a way I can directly read/write PLC Tags from VBA without a separate DDE/OPC link? If this were a single DINT, or REAL or BOOL I could create a reference tag in RSView, but you can't create an Array of Reference Tags in RSView, so again, I would have to create nearly 1000 tags in RSView with each one pointing to a different element of MyBigUDT. Obviously the object here is to create a For Next Loop in VBA that will do a lookup on the correct array element, and ideally to be able to use the VBA event for Numeric Data Display Change() to update the associated Polygon (I have a grouping of a Polygon and a Numeric Data Display Field) With Polygon1 and NDD1 through 999. Any suggestions or workarounds would be appreciated. Surely others have run into this wall, I'm at the point where I think I need to write a standalone VB application that I call from RSView to save on coding. Regards E