IoT & Connectivity Tips | ThingWorx & Kepware PTC
Recently active
Configure Permissions Guide Part 2Step 5: PermissionsStep 6: Application KeysStep 7: OrganizationsStep 8: Next StepsConfigure Permissions Guide Part 2 Step 5: Permissions These permissions can be accessed on any Entity created on the platform. All Entities have permission control for both design time and run time.Permission TimeControlDesign timeControls what Users are able to do with Entities themselves while building the solution.Run timeControls what the Users are able to do with the data for an Entity when they use the solution. Permission TypeDescriptionProperty ReadRead property valuesProperty WriteUpdate property valuesService ExecuteExecute Services in this EntityEvent ExecuteQueue or fire Events in this EntityEvent SubscribeAbility to subscribe to Events in this Entity Access TypeDescriptionAllowAllow the User's access to this feature.DenyDeny the User's access to this feature.InheritSet the User's access to this feature b
Configure Permissions Guide Part 1OverviewStep 1: Completed ExampleStep 2: Common TermsStep 3: UsersStep 4: User GroupsConfigure Permissions Guide Part 1 Overview This project will introduce you to permissions inside of the ThingWorx platform. Permissions are used to control usage during development, runtime, and experience. Following the steps in this guide, you will be able to create Users, User Groups, Application Keys, and Organizations and tie them together. We will teach you how to create functional permission schemes in the ThingWorx platform to create a secure application and development environment. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL 2 parts of this guide is 30 minutes. Step 1: Completed Example Download and unzip the completed files attached to this tutorial: PermissionsEntities.zip. In this tutorial, we walk through security concepts within ThingWorx. Utilize this file to see
Step 5: Log to Value StreamStep 6: Visualize the DataStep 7: Next Steps Step 5: Log to Value Stream Now that you have explored the Properties of IndConn_Tag1, you’ve seen how ThingWorx Kepware Server feeds information to ThingWorx Foundation. To get an even better indication of changes and confirm continued connectivity, we will log the changes to a Value Stream in order to record the values with a TimeStamp. Create Value Stream Return to the ThingWorx Foundation New Composer browser.Click Browse.Click Data Storage -> Value Streams.Click + New.In the Choose Template pop-up, select ValueStream.Click OK.Type IndConn_ValueStream in the Name field.If Project is not already set, click the + in the Project text box and select the PTCDefaultProject.In the Description field, enter an appropriate description, such as Value Stream to record changes
Data Model IntroductionOverviewStep 1: BenefitsStep 2: EntitiesStep 3: Inheritance ModelStep 4: Scenario Step 5: Next StepsData Model Introduction Overview This project will introduce the ThingWorx Foundation Data Model. Following the steps in this guide, you will consider data interactions based on user needs and requirements, as well as application modularity, reusability, and future updates. We will teach you how to think about a properly constructed foundation that will allow your application to be scalable, flexible, and more secure. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete this guide is 30 minutes. Step 1: Benefits A Data Model creates a uniform representation of all items that interact with one another.There are multiple benefits to such an approach, and the ability to break up items and reuse components is considered a best practice. ThingWorx has adopted this model at a high level t
How to Display Data in Charts Guide Part 3Step 6: Configure ChartsStep 7: Next Steps How to Display Data in Charts Guide Part 3 Step 6: Configure Charts You now have a test Thing that has an Info Table Property and Time Series Property with values appropriate for display in various Chart Widgets, as well as a Mashup with those charts inside.However, in order for the Widget to display data, you need to bind it to the data source. Bring Data into the Mashup Select the Data tab in the top-right section of Composer. Click the green + button under Data. In the Entity Filter field, search for and select DDCThing.In the Services Filter field, type GetProperties.Click the right-arrow beside GetPropertiesThe GetProperties Service will now appear on the right under Selected Services.Check the Execute on Load box under Selected Services.This will cause the GetProperties Service to execute
How to Display Data in Charts Guide Part 2Step 4: Create ThingStep 5: Create Mashup How to Display Data in Charts Guide Part 2 Step 4: Create Thing In order for the Mashup to pull data into the display, you first need to create an Entity. In this example, we utilize a Thing with an Info Table Property, as well as a Time Series Property. We’ll use the DataShape we created in the last step to format the Info Table Property. Then, we'll assign the Info Table Property some default values to display in our non-time-series charts.We will change the values of the Time Series Property (which will record them to the Value Stream) for display in our time-series charts. Info Table Property From the Browse tab of ThingWorx Composer, click Modeling > Things, + New. In the Name field, enter DDCThing.If Project is not set, search for and select PTCDefaultProject.In the Base Thing Template
How to Display Data in Charts Guide Part 1OverviewStep 1: IntroductionStep 2: Create Data ShapeStep 3: Create Value StreamHow to Display Data in Charts Guide Part 1 Overview This project will introduce various Chart Widgets. Following the steps in this guide, you will learn how to graphically represent multiple data points simultaneously. We will teach you how to utilize the Pie, Label, Proportional, Bubble, Time Series, and Event Charts. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL 3 parts of this guide is 60 minutes. Step 1: Introduction As an IoT application developer, there are times when you want to display multiple data points simultaneously. In this situation, it is often helpful to make use of one of the various Chart Widgets.This guide will discuss the following Chart Widget options:*Old widget = no web component replacementPie – old widgetLabel (Legacy)Proportional – old widgetBubble – old wi
OverviewStep 1: Learning Path OverviewStep 2: Create GatewayStep 3: Connect to FoundationStep 4: Bind Industrial TagOverview This guide has step-by-step instructions for connecting ThingWorx Kepware Server to ThingWorx Foundation. This guide will demonstrate how easily industrial equipment can be connected to ThingWorx Foundation without installing any software on production equipment. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL 2 parts of this guide is 30 minutes. Step 1: Learning Path Overview This guide explains the steps to connect ThingWorx Kepware Server with ThingWorx Foundation and is part of the Connect and Monitor Industrial Plant Equipment Learning Path.You can use this guide independently from the full Learning Path. If you want to learn to connect ThingWorx Kepware Server to ThingWorx Foundation, this guide will be useful to you.When used as part of the Industria
Basic Mashup Widgets Guide Part 3Step 5: GaugeStep 6: Grid AdvancedStep 7: Next Steps Basic Mashup Widgets Guide Part 3 Step 5: Gauge A Gauge is best for displaying a quickly readable approximate value.Select the Widgets tab in the uppper panel of the left dock, then enter gauge inside the Filter field in the top left.Drag-and-drop the Gauge widget onto the bottom-center container.We will now bind the Slider to the Gauge. Click the Slider Widget in the top-right Container.Click the drop-down arrow on the left side of the Slider widget.Click and drag the Value property listed in the Slider drop-down onto the Gauge widget. Click the # Data property that is available from the Select Binding Target pop-up. Click Save to save your Mashup.Click View Mashup then adjust the slider to the left to see the changing value shown on the widget.Many properties are available that give co
Basic Mashup Widgets Guide Part 2Step 3: SliderStep 4: Toggle Button Basic Mashup Widgets Guide Part 2 Step 3: Slider A Slider allows your application users to interactively select a numeric value. When the user changes the position of the slider bar, an event is fired and the value property is changed.On the New Mashup tab, enter slider inside the Filter field in the top left.Drag-and-drop the Slider widget onto the top-right Container of your Mashup.3. In the lower panel of the left dock, scroll to the Maximum property and change the value to 1000.4. Change the Value property to 500 set the default position of the slider. Add Value DisplayTo demonstrate the Slider functionality we will add a Value Display Widget within the same Container of your Mashup as the Slider and bind the slider widget output to the input of the Value Display. 1. In the Filter&nb
Basic Mashup Widgets Guide Part 1OverviewStep 1: Create MashupStep 2: ButtonBasic Mashup Widgets Guide Part 1 Overview This project will introduce how to use some basic Widgets in a Mashup. Following the steps in this guide, you will create a Mashup that reacts to user input using a Button, Toggle Button, and Slider Widget. We will also teach you how to display data to users with the Grid Advanced, Gauge, and Property Display widgets. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL 3 parts of this guide is 60 minutes. Step 1: Create Mashup Build MashupClick the Browse folder icon on the top left of ThingWorx Composer.Select Mashups in the left-hand navigation, then click + New to create a new Mashup. 3. For Mashup Type select Responsive.NOTE: A Responsive Mashup scales with a browser’s screen size. In the steps below we will create 5 containers, one
Create Custom Business LogicOverviewStep 1: Completed ExampleStep 2: Rules Engine IntroductionStep 3: Establish RulesStep 4: Scenario Business Rule EngineStep 5: Scenario Data Model BreakdownStep 6: Next StepsCreate Custom Business Logic Overview This project will introduce you to creating your first ThingWorx Business Rules Engine. Following the steps in this guide, you will know how to create your business rules engine and have an idea of how you might want to develop your own. We will teach you how to use your data model with Services, Events, and Subscriptions to establish a rules engine within the ThingWorx platform. NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete this guide is 60 minutes. Step 1: Completed Example Download the attached, completed files for this tutorial: BusinessLogicEntities.xml. The BusinessLogicEntities.xml file contains a completed example of a Business Rul
User Load Testing in ThingWorxJava Client TutorialWritten by Tori Firewind, IoT EDC IntroductionAs stated in previous posts, user load testing is a critical component of ensuring a ThingWorx solution is Enterprise-ready. Even a sturdy new feature that seems to function well in development can run into issues once larger loads are thrown into the mix. That's why no piece of code should be considered production-ready until it has undergone not just unit and integration testing (detailed in our Comprehensive DevOps Guide), but also load testing that ensures a positive user experience and an adequately sized server to facilitate the user load. The EDC has spent quite a few posts detailing the process of setting up an accurate, real-world testing suite using JMeter for ThingWorx. In this piece, we detail an alternative approach that makes use of the Java Spring Boot Framework to call rest requests against the ThingWorx server and simulate the user load. This Java Client tuto
How to input Database User Credentials at RunTime.This Blog considers that you have already imported the Database Extension and Configured the Thing Template. If you have not done this already please see Steps to connecting to your Relational Database first.Steps:Create a Database Thing template with correct configuration.Example configuration for MySql Database:jDBCDriverClass: com.mysql.jdbc.DriverjDBCConnectionURL: jdbc:mysql://127.0.0.1:3306/<DatabaseNameHere>?allowMultiQueries=trueconnectionValidationString: SELECT NOW()maxConnections: 100userName: <DataBaseUserNameHere>password: <DataBasePasswordHere>Create any Generic Thing and add a service to create thing based on the Thing template created in Step 1.Example:// NewDataBaseThingName is the String input for name the database thing to be created.// MySqlServerUpdatedConfiguration is the Thing template with correct configurationvar params = { name: NewDataBaseThingName /* STRING */, &
In ThingWorx Analytics, you have the possibility to use an external model for scoring. In this written tutorial, I would like to provide an overview of how you can use a model developed in Python, using the scikit-learn library in ThingWorx Analytics.The provided attachment contains an archive with the following files:iris_data.csv: A dataset for pattern recognition that has a categorical goal. You can click here to read more about this datasetTestRFToPmml.ipynb: A Jupyter notebook file with the source code for the Python model as well as the steps to export it to PMMLRF_Iris.pmml: The PMML file with the model that you can directly upload in Analytics without going through the steps of training the model in PythonThe tutorial assumes you already have some knowledge of ThingWorx and ThingWorx Analytics. Also, if you plan to run the Python code and train the model yourself, you need to have Jupyter notebook installed (I used the one from the Anaconda distribution).For demonstration
Solution Central and Azure Active DirectoryWritten by: Tori Firewind, IoT EDC As we’ve said in a previous post, Solution Central (SC) is a crucial part of any mature dev ops pipeline. In its latest version (3.1.0), it manages custom solutions even more easily due to the SC API. However, this comes with a few requirements that can be a little tricky. One of the more complex configuration pieces for using this new API involves a cloud-hosted Active Directory (AD) application within Azure AD. In order to make use of the new API, your organization’s users must exist on an Azure AD tenant that is separate from the PTC tenant. Most PTC customers are placed on this PTC-owned tenant by default, so additional configuration may be required to set up the AD instance within Azure before the SC API can be used. The type of tenant has to be Azure, of course, as that is what PTC uses: a multi-tenancy Azure infrastructure for all authentication. In this usage, “tenant” is a cloud-hostin
1. Add an Json parameter Example:{ "rows":[ { "email":"example1@ptc.com" }, { "name":"Qaqa", "email":"example2@ptc.com" } ]}2. Create an Infotable with a DataShape usingCreateInfoTableFromDataShape(params)3. Using a for loop, iterate through each Json object and add it to the Infotable usingInfoTableName.AddRow(YourRowObjectHere)Example:var params = { infoTableName: "InfoTable", dataShapeName : "jsontest"}; var infotabletest = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params); for(var i=0; i<json.rows.length; i++) {
Introduction to Digital Performance Management (DPM)Written by: Tori Firewind, IoT EDC “Digital Performance Management (DPM) is a closed-loop, problem solving solution that helps manufacturers identify, prioritize, and solve their biggest loss challenges, resulting in reduced cost, increased revenue, and improved service levels.”– DPM Help CenterWhat is DPM?Digital Performance Manager (DPM) is an application which improves factory efficiency across a variety of different areas, namely “the four P’s” of Digital Transformation: products, processes, places, and people. Each performance issue in a factory can be mapped to at least one of these improvement categories in a new strategy for Continuous Improvement (CI) founded by PTC. Figure 1 – Each performance issue in a factory can be mapped to at least one of 4 fundamental improvement categories: products, processes, places, and people. PTC’s new, industry-leading strategy for continuous improvement (CI) in factories is a “best p
ThingWorx community, As part of a continuous re-evaluation of our third-party software requirements, we regularly add and remove support for versions of operating systems, persistence providers, and web browsers. On this note, for the ThingWorx release after 9.2 (currently targeted for the end of CY 2021), we are planning to end support for Windows Server 2016. Already five years old, this product has generally been replaced by Windows Server 2019 in common usage. As per Microsoft’s published lifecycle, this version will be going out of "Mainstream Support" approximately one year after the aforementioned ThingWorx release. PTC will continue to support Windows Server 2019 for the immediate future, and will consider supporting Windows Server 2022 once it becomes Generally Available (GA). Please let me know if you have any questions or concerns. Regards, Walter HaydockThingWorx Product Management
Overview REST stands for representational state transfer and is a software architectural style common in the World Wide Web. Anything with a RESTful interface can be communicated with using standard REST syntax. ThingWorx has such an interface built-in to make viewing and updating Thing properties as well as executing services easy to do independently of the Web UI. How to Use REST API The ThingWorx REST API is entirely accessible via URL using the following syntax: (Precision LMS. Getting Started With ThingWorx 5.4 (Part 1 of Introduction to ThingWorx 5.4). PTC University. https://precisionlms.ptc.com/viewer/course/en/21332822/page/21332905.) The above example shows how to access a service called “GetBlogEntriesWithComments” found on the “ThingWorxTrainingMaintenanceBlog” Thing. Notice that even though this service gets XML formatted data, the method is type “POST” and “GET” will not work in this scenario (Further reading: https://support.ptc.com/appserver/
The DPM User ExperienceWritten by Tori Firewind, IoT EDC Team As discussed in a previous post, DPM is a tool designed to be beneficial at all levels of a company, from the operators monitoring automated data on production events from the factory machines themselves, to the production supervisors who need to establish, task out, and track machine maintenance and improvement measures. DPM also engages the continuous improvement and plant leadership, by providing a standardized way to monitor performance that ultimately rolls up to the executive level. The end users of DPM are therefore diverse both in how they access DPM, and how they make use of its various features. One of the perks to building DPM on top of the ThingWorx Foundation is that many of the webpages (called “mashups”) within ThingWorx are already responsive, and any which aren’t responsive OOTB can be modified and custom designed for different size viewing screens to ensure that if necessary, end users can a
I recently had a customer who wanted to run services on ThingWorx from Power BI to retrieve existing operational data, and we were a bit stumped on how to pass the API key over in the headers, so I did a bit of Googling and pieced together the solution. It's not quite intuitive on the Power BI side, so I thought it would be helpful to share. If you have any other experience with integrating ThingWorx with Power BI, feel free to add a comment. Prepare ThingWorxCreate an Application Key that has Run Time execution access to the services you need.Understand the inputs needed for the service you would like. I'll have examples of none, one, an InfoTable, and multiple inputs. Power BIFollowing the following steps in Power BI:1. In Power BI, create a new blank query 2. On the left, right click on Query1 and go to the Advanced Editor: 3. Replace all of the body content with the following, replacing your API key, appropriate end point, and base URL as needed (this is a
A license is not required to download and install KEPServerEX V6. After finishing the full install, all features of the KEPServerEX Configuration are available for setup and testing, including the ThingWorx Native Interface. When either a Client application makes a request of a Driver, or a Plug-in becomes activated, then a license check is performed. If a feature is not licensed, a two-hour demo countdown period will begin for that feature. There are System tags that can be monitored in KEPServerEX to determine which features are licensed, which are in a time-limited demo countdown period, and which have expired. To reset the countdown timer for an unlicensed feature, the KEPServerEX Runtime service can be stopped/restarted. See the links and steps below for more information.How do I download and install KEPServerEX?Monitor licensed, time-limited, and expired features in KEPServerEX:1. Open the KEPServerEX Configuration window2. The right-most icon in the Configuration icon toolbar
ThingWorx Performance Monitoring with Grafanaauthored by EDC team member Desheng Xu ( @xudesheng ) Monitoring ThingWorx performance is crucially important, both during the load testing of a newly completed application, and after the deployment of new code in an existing application. Monitoring performance ensures that everything works as expected at the Enterprise level. This tutorial steps you through configuring and installing a tool which runs on the same network as the ThingWorx instance. This tool collects data from the Platform and translates it into something visual and easy to understand via Grafana. tsample is small and customizable, and it plays a similar role to telegraf. Its focus is on gathering ThingWorx performance metrics. Historically, this tool also supported collecting OS level performance metrics, but this is no longer supported. It is highly recommended to collect OS level performance metrics by using telegraf,
Announcing: ThingWorx Solution Central 3.1.0 and its New APIWritten by: Tori Firewind of the IoT EDC Solution Central 3.1.0ThingWorx Solution Central (SC) is the solution management tool for ThingWorx and Digital Performance Management (DPM), the latest version of which (DPM 1.1) can now be deployed directly from the PTC Solutions menu of SC. Streamlining packaging strategies and ensuring efficient solution deployment can now be done for all kinds of ThingWorx solutions, even those with heavy customization. The new API allows for updated building blocks from within the PTC Solutions menu to be easily discovered and deployed right alongside custom solutions. Even the most advanced developers can now house their deployment management process within SC. As discussed in a previous article, Solution Central forms a necessary part of a mature DevOps pipeline, usually as a set of services within Foundation which finalize and publish the solution to the Solution Central servers. The
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.