• Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About robbudge

  • Rank

Recent Profile Visitors

2,542 profile views
  1. Found another problem and decided to switch to a single Master. I tried to remove the remote tags and that worked fine. But the graphic symbols didn’t detect that the tag was remote as it needs to be prefixed with the remote name. It was a nice idea. Probably just finding the limits. 3 PLC’s and 16,000 tags is probably up there. Will need to monitor the server load.
  2. Just realized , I have another problem. Is it possible from script to import a channel table. The project has ALL tags in the local database. The Cellar Master will have a connection to the BrewHouse. So the Same tag will be both local and remote.
  3. On occasion for both static text and Variable Display, we require the text to be vertical, also for variable display alignment options would be really good
  4. We are currently building a large brewery, this will consist of 3 separate HMI Masters. BrewHouse 4000 Tags OPC PLC1 Cellar 3000 Tags OPC PLC2 CIP 1000 Tags OPC PLC3. Plus a Common Client for out on the brewhouse floor. The project is currently built as single project and we 'Import' the channel table before deploying on the relevant HMI Master/Server We currently utilize start-up flags to indicate Master or Client and also in the case of the master its location. Now the interesting part. The remote client configuration does not need any local channel tables as it will create new connections to the BrewHouse,Cellar & CIP on the startup flag. Ideally i would have 3 LOCAL Channel tables, with the OPC Symbols configured, LOCAL-Brewhouse, LOCAL-Cellar, LOCAL-CIP. Then depending on the startup flags. Client, Disable all LOCAL Channels Master-Brewhouse, Disable LOCAL-Cellar and Disable LOCAL-CIP Master-Cellar, Disable LOCAL-BrewHouse and Disable LOCAL-CIP Master-CIP, Disable LOCAL-Cellar and Disable LOCAL-BrewHouse. All my Channels are prefixed BH,CIP,Cellar so I am tempted to import all 3 tables into the single project and use script to disable the specific prefixed channels when needed, just not to sure if they still get passed to the OPC Channel driver. Thinking there could be an easier way ??
  5. Hi, We HATE doing things over and over again, we have created a number of 'User' Symbols contains lots of script and on-load sequences to populate the various symbols in the group. The problem we now face, is the 'On-Page' instances are not linked to the master / User Symbol. They appear to be a simple copy. Our current project has over 100 valve user symbols. if we now wish to change the color coding for example we have to replace every single instance with the new one. Is there any work around ???
  6. Wa Already looking into Json Conversion, DO you have a Sample Json, or Sequence ???? On a Initial test I get a Class_Not_Found Error. Also I can't find a command to request the class members / Sub members to start building the channel table. I have also started to build the class list directly from the XML, with the hope of building the Channel table that way
  7. Due to having large projects 5000+ Tags, Codesys OPC Configuration is via a Symbol XML file this is a structured file with Class types and class instances. We use another HMI Package to Import the Codesys OPC Symbol File and basically turn it into a flat list. We then export the flat list as a CSV file. We have built a Sequence with DAQ that deletes the channel table and rebuilds it from the CSV file, Placing each Class instance in its own Group. We pre-specify the OPC Connection path This works really well but is very cumbersome. We are looking into building a Sequence from scratch to parse the Codesys XML directly, but before we spend a week designing and testing. Has this already been done ? is there a easier way ?? I was looking if i could browse the OPC Server Directly from with a Sequence almost like channel.ListAll , But OPC.ListAll ?? 92780517-18.Controller.Application.xml
  8. robbudge

    Local vs Remote Scripts

    I think i found it BeginSeq(Local.SequenceName)
  9. I am just testing my project operating with with a remote Client. My Default Connection is to the main server. Initially my project had a 'Screen Load' Script that would populate the screen objects with the required indexed Channels say Motor_0_Speed where _0_ would be the index. The buttons would simply call BeginSeq(Screen x Load). We Quickly realized that scripts ran on the Default connection and resulted in a screen change on the server. the code was moved to a Onscreen symbol, then the Component RedoLoadevent Was called to populate the screen. This works well. The problem i now have is Global Variables, Well more importantly Global Class Variables. On one page i have a sequence that turns Pump_0_Volume , Pump_1_Volume , Pump_xxx_Volume into a class that contains the array Pump[x].Volume. This is then used in a Table Screen component with lots of other indexed data turned into an array. The question is how do I run a sequence on the Non Default Connection. From with DAQ, From with DAQ I can right click and Begin Sequence Manually and all works well. I was hoping for a command like 'Local.BeginSeq(xxxxx) but i could not find one. I don't really want to be passing all my class information into a V.Channel.
  10. robbudge

    class being destroyed from edit box

    For some reason that only works once, fails on the second click
  11. i have a structured class it consists of the following structure recipes[20] Each recipe contains Stages[5] Each Stage contains pumps[5] Each pump contains ID (Pump ID) pct (Percent of operation) Now heres the funny part I declare the recipe class and after import multiple Json file's to populate the each recipe without problems. i have a edit box with the set channel to recipes[1].stages[1].pumps[1].pct whenever this is modified my class is destroyed. but from the command line i can go recipes[1].stages[1].pumps[1].pct=10.0 followed by recipes[1].stages[1].pumps[1].pct=9.9 without any problems
  12. robbudge

    Message optimization

    I have a number of tags being read, They are inside a structure in the plc and are a mix of Integer and Real values. Even though all registers are sequential when a monitor the communications each datatype is being requested independantly. This means that for the 10 registers, Daq is actually making 4 seperate data requests. All channels are in the same group and are being read by the ReadGroup command. Is there anyway to have DAQ relise that these are sequential holding registers and read them in one message. Or would using an OPC with some message optimization be a valid alternative ? Thanks in advance.
  13. I current have a project that features close to 2000 Tags at the moment. There are approximately 10 main pieces of Equipment, Each with 20 Sensors, Each Sensor has about 10 Tags. So Far i have about 200 groups My Groups are all Called Device_Sensor....... Now at some point my Channel tree had a moment and did display sub groups. The Question is can a create a Device Group With a Sensor Sub Group ??? Device\Sensor.......
  14. With a Large number of tags and Groups is it possible to obtain a Channel Group List similar to List All. But just the Group Names. This can then be passed to Read Group one by one to control the Scanning ??
  15. robbudge

    Grouped Graph

    I have a graph grouped with a selection of other objects, The main group has a simple On-Load Sequence that populates the page. When i un-group the graph is fine. As soon as i group the graph, the Text Spacing falls apart. I Have attached Screen Shots. Project File is 45mb to big to attach