Giter Site home page Giter Site logo

jlbcontrols / flintium Goto Github PK

View Code? Open in Web Editor NEW
30.0 30.0 12.0 4.23 MB

Open-source library of Ignition® faceplates and graphics that pair with AOIs from the Rockwell Automation® Library of Process Objects.

License: MIT License

Python 91.39% Dockerfile 8.61%

flintium's People

Contributors

jlbcontrols avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

flintium's Issues

P_ValveSO UDT

-A P_ValveSO UDT has been created, but needs to be finished and cleaned up.

Edit: Changed this issue to only track the UDT. Faceplates and templates will be tracked separately.

Alarm integration (P_Alarm UDT)

Integrate the P_Alarm block with the Ignition alarming system.

Alarming should minimally handle:

  • Acking from Ignition.
  • Remote ack from somewhere else.
  • Severity convertion. 0-1000 -> 1-5 (f.ex)

Integrating shelving require some investigating.

Contributor recognition

Joe and I discussed maybe keeping this git private while we get organized, and also creating a project website that lists the contributors and their websites so people can get some traffic out of the project (as well as things like release downloads, documentation, videos, etc. Open to any other ideas at all of how to approach this.

P_Gate Popup Window label "null"

Similar to issue #50 for P_Alarm. This will be solved similarly, by adding a /Meta/Label tag to the P_Gate UDT.

P_Gate Popup "null" for label, see below. This is because the P_Gate UDT does not have a /Meta/Label tag.

image

Hosted PLC (emulate or softlogix?)

Just throwing this out there, it would be nice to have a PLC for people to connect to. If someone has the ability to host an RS Emulate or Softlogix plc that people could connect to for testing that would be helpful.

UDT Parameters

Edit - Changed this issue from Architecture to discussion about UDT Parameters.

Faceplate pops up with selected tab that does not exist.

Need to be able to specify the first tab that pops up when a faceplate is opened. Currently, a tab that does not exist may be the first selected. See example below, P_Gate popup is opened, with "Maintenance" tab selected, but P_Gate does not have a Maintenance tab.

image

P_Alarm binding paths incorrect

Right now P_Alarm.Alm is configured per the screenshot below. The binding paths are incorrect, for example: {[.]../Config/Condition} should be {[.]Config/Condition}

image

P_MotorRev UDT

-A P_MotorRev UDT has been created, but needs to be finished and cleaned up.

Edit: Changed this issue to only track the UDT. Faceplates and templates will be tracked separately.

Reuse Graphic Object with/without display value

The device graphic object template should be reusable for devices that do not have a display value.
For instance, the VFD pump graphic object uses the display value to show Hz. The graphic object should be usable with a Full Voltage pump, with display value hidden.

image

Edit the device UDTs and graphic object to make them compatible for devices with or without display values.

Display Label template bad quality

Intermittantly, when a page is opened or reopened, the Display Label template within P_PIDE and P_AIn graphics has bad quality. See images below

image

PIDE_bad_quality

P_VSD udt contains extra tags

Many of the .Err_... tags were not deleted when removing the prefix. i.e. P_VSD/Error/Alarm was created properly, but P_VSD/Error/Err_Alarm is also present. These should be deleted.

Image Use / Vector Images / Vector Library

This doesn't need to happen right away, but will probably benefit us in the long run if we find some kind of vector image library (paid or free?) and use images with an appropriate license for this project.

Using vector images would also give the added benefit of not having to worry about importing /exporting the image library as vectors get stored directly in the window or template.

Alarming Integration

Ignition's built-in alarming system does not integrate easily with the P_Alarm. Acknowledgement and Shelving are handled by both systems separately, with no simple way of connecting them.

How should this be handled?

Update UDTs with {OPC Server} parameter

A new parameter called OPC Server needs to be added to each UDT definition. The default value should be "Ignition OPC UA Server"

The function below can be used to push the parameter to the OPC Server field of each member tag.
UdtConversion.updateOpcServer()

Adjust Historical Tag Settings

This needs to be looked at for all historical tags, but here is one example:

The image below shows a P_ValveC/Val/CVOut tag, with step change in position from 70% yo 50%. Since no points are recently stored before the step, it appears to have been at 50% the whole time.

image

Correct P_PIDE UDT structure

Delete extra tags in "Output" folder. Should only be for Out_ tags
Detele P_AIn nested UDT, and P_AIn parameter. Not used or needed.
Move Cfg_ tags that are in "Local" folder to "Config" folder. Correct paths in impacted templates.
Relocate or delete remaining tags in "Local" folder to keep structure similar to the other UDTs.

P_MotorRev Templates

Create Main and Advanced faceplate templates
Create fpScripts.nav object to allow navigation to the templates

Scan Classes

Edit - Changed this to a scan class discussion. Will move the architecture issue.

P_ValveSO Templates

Create Main and Advanced faceplate templates
Create fpScripts.nav object to allow navigation to the templates

Edit database name

Change database name from "MySQL" to "historydb". This was changed for instance tags during the resolution of issue #57. The README file instructions will be changed, and the database name should be updated in everyone's gateway.

Planning/Scheduling - Week 3/15

All - please respond with your availability so we can coordinate our work this week. I'll suggest issues for everyone to work on, but feel free to respond with your input. Please confirm issues that you will be focusing on in your response. Let's not officially assign issues until you start making code changes though, that way we can easily tell when code is being modified, and can coordinate merging, etc.

@Subrosa270 - I know you're on a startup/still getting set up. Will you be able to work on an issue this week? If so, I think you should start with #33

@MaxCarritt - What is your availability this week? It would be great if you could figure out what is going on with #43. Some of the broader/project governance issues could also use your leadership: #10, #12, finalize #13

@tord-v - Can you start making progress on Alarming this week? There is no perfect solution, and we don't have clear actions yet, but I think we need to get something functioning, and then we can improve ... Agile! :) Since you have experience with this in 3.5, it would be great if you could lead this.

@jgodboutPCS - Do you know when you'll be available to jump in? I know you have a ton of experience with all of this, but we could really use your help with P_Seq, specifically.

Add second color option to GO_Device_HorizFlow template

Modify GO_Device_HorizFlow to allow process objects to display multiple colors if necessary.

For instance, P_ValveSO has one color for the body (open/close position indication), and another for the actuator (open/close output indication).

P_Perm Templates

Create Main and Advanced faceplate templates
Create fpScripts.nav object to allow navigation to the templates

Replace & Delete ItemStatus Template

Replace uses of the Shared Components/ItemStatus template with BooleanTagIndicator template. The old template will no longer be needed after it is deleted from the P_Alarm/Main/Operator template and P_PIDE/Advanced/Faults templates.

image

Developing and Contributing to this project

We should try and collectively develop a plan for how to develop on this project, because of how Ignition handles changes, the complexity of PlantPAx, and having several different contributors.

The idea here is to separate our development environments from our master (or production). That way you can feel free to mess with anything, but also only upload changes you feel confident about. If there are major issues that happen on accident, we can roll them back easily.

Using GIT with Ignition is still pretty new too, so we might also run into some issues to work through.

Initial idea of how to make changes:

  1. Clone this project to your computer or gateway. You can use the github desktop app to do this, or go the git command line route. Probably the easiest thing to do is just clone it to an empty directory somewhere on your computer, and manually copy over the jlbFP folder to your gateway's project folder.

  2. Use the included import/export udt window (under administration, utilities) to import the UDTs in the tags/udt_types folder (select 'import me.txt')

  3. Import all the images if needed

  4. Focus on developing in as small of an area as you can.

  5. When you are happy with a change, export that change, and put it into the git directory you created earlier. If you are using github desktop, it should see the file(s) that you change. Commit the change with a title, and decent description of what you did. Push to the origin. It should now be visible to everyone else.

  6. Retrieve changes that other have made by pulling the project, and then copying again the project folder, importing udts, and new images if there are any.

Committing things one by one instead of huge changes all at once will make the project more organized, and any changes will be clearer to the team.

Add Slow Leased Tag Group

Create a new leased scan class and add all "Cfg_..." tags to it.
Rate: 60,000
Leased/Driven Rate: 1,000

P_AIn UDT not importing completely

When P_AIn is imported using the udt import tool, the alarms are not imported (Alarm folder is empty, see screenshot below). For now, I am importing P_AIn individually after importing the rest of the UDTs using the tool.

image

Intro

Hi Everyone, thanks for joining the project. My name is Joe Burns, and I have been an automation engineer for 10 years. I have worked in a number of different industries, including power, defense, nuclear, semiconductor, pharma and mining. I’ve always wished the Ignition community had a standard automation library. I’m very excited this team is coming together to work on it. I’m looking forward to working with you.

Please respond to this issue to introduce yourselves!

Project Name

The most important issue! What do we call this project? Let's get a brainstorm going!

UDT Leased Scanclass Test

Test needed to see if UDT with leased scan class causes all contained tags to be polled when only one tag is needed.

They may have fixed this in version 8, but in 7 the issue I ran into was that even if a member of UDT was part of a leased tag group it would go on scan if any member of the UDT was being displayed or read for any reason. That means if the direct value tag was being shown on screen, tracked in the historian, or monitored for alarm, then the entire UDT would be read even if it was leased. My initial solution was to have to create a completely separate datatype for the leased tags and one for the live tags.

Inductive has completely re-worked the tagging architecture with version 8 so they may have fixed that problem. It might be worth coming up with a test to see if they did. I would suggest creating a data type with a lot of members that are leased and with one tag to display on the client. Then monitor the gateway for the number of tags on scan. If you are only seeing the one tag we are in good shape, however, if all the leased tags are being scanned even if they are not displayed this architecture will result in crashing the gateway when put into practice.

Tag Configuration Tool

The aim of the TagScriptModule is to convert UDTs created from OPC drop to the format we need in this project. It also helps when we need to make sweeping changes. I originally started making this using scripting, but gave up because debugging is frustrating in Ignition.

Now that this library is intended for a larger audience, perhaps scripting should be used so it is accessible to everyone. What do you think? Would anyone on this team like to lead this subproject?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.