Recently active
Hello, I've been working with JSON as inputs to services a lot more lately and I've noticed a strange behavior, at least for me. When I have set the Inputs as a JSON: And put a JSON object with an array in it (with several objects in it), something like this:When using this object in the code and trying to push some new objects into this array I get the error saying that the .push() function doesn't exist. "TypeError: Cannot find function push in object" But if I declare the exact same object in the code, something like this: let array = { "PlatformData": [ { "Comment": "User Projects (not the PTC projects)", "Description": "1\nP", "Instance": "", "ServerName": "", "TypeOfEntity": "Projects", "Timestamp": "2022-11-04 15:52:37.170", "Name": "" }, { "Comment": "User Projects (not the PTC projects)", "Description": "", "Instance": "", "ServerName": "", "TypeOfEntity": "Projects", "Timestamp": "2022-11-04 15:52:37.170", "Name": "" } ]
Step 4: Implement New FeaturesStep 5: Next Steps Step 4: Implement New Features The SMT Assembly Line Data Model was built around a sample manufacturing facility that tracks critical data points, including diagnostic information for: motherboardsassembly machinesassembly line performance To make informed decisions based on the diagnostic and performance data, you can add features that will increase analytics capabilities. In this optional step, we'll add a Line Chart to see the performance of any given assembly machine. Once completed, we can create Services that will be used to make calculations on the data we have generated from the assembly line. For a final challenge, you can create a service that will compare data points to identify what works best in an assembly machine, a larger internal queue, or more placement heads. Setup New Mashup Create a Mashup that is Responsive and name it SMTTimeSeriesMashup.Click the Layout tab and add a c
GUIDE CONCEPTStep 1: Examples and StrategyStep 2: Creating Security GroupsStep 3: Configuring PermissionsStep 4: Next Steps Learn how to create or update your system to be more secure GUIDE CONCEPT ThingWorx allows for a layer of security within your company or organization to be utilized for authentication and user management. These concepts and steps will allow you to focus on development of your application while still allowing the ability to utilize the power of ThingWorx! We will teach you how to enable and configure ThingWorx to perform your security needs. YOU'LL LEARN HOW TO Securing data and private informationUse services, alerts, and subscriptions to handle processes without human interactionHandling group and organization permissions NOTE: The estimated time to complete this guide is 60 minutes. Step 1: Examples and Strategy Download the attached FoodIndustry.zip users and extract/import the contents. T
I have a requirement to switch on a camera from browser of ipad to click a image and store it in system. For this I am trying to build a custom widget. For this I have created a "CameraON" boolean property in camera.ide.js file. From camera.runtime.js file I am checking for this property, if it is true I am trying to switch on the camera. But it is not working. I am attaching both the files for reference. It would be helpful if someone can help on this or suggest how to troubleshoot.Thanks in advance!
Dear community, I am having trouble with the QueryDataTableEntries Service of DataTables, Build 9.3.0-b20. I prepared an example and attached it to this thread, it contains a DataTable Thing with an according DataShape. The DataShape has 3 fields, each is defined as part of the key. The DataTable has 8 entries (2 different values per field, permutated), they are added by the Init Service which is called on ThingStart. The Service VerifyQueryDataTableEntries performs 4 tests to query the data. The first two are working well. The last is failing, it doesn't return any row but I would expect to receive one.The third test seems to be an act of randomness. First it succeeds but if you execute the Init Service (or restart the DataTable) a second time it also fails!??? I consider this behavior a bug. Or at least it is a change in behavior since 8.4.15, in our old environment all tests succeed. Thank you for checkingBenny
Hello everyone, I've created an extension that convert a file from csv to parquet and send it to Event Hub. The creation of parquet is based on spark-3.3.0-bin-hadoop2 libraries installed on file system and referred by an enviroment variable. This scenario is working well but i wondering if is possible perform the same action loading the spark-3.3.0-bin-hadoop2 as a Thingworx extension. In this case how can I referred the library in an environment variables ?Answering question could solve the problem when Thingworx is installed in a cloud environment. Thank you
Guide ConceptStep 1: Learning Path OverviewStep 2: Create GatewayStep 3: Connect to FoundationStep 4: Bind Industrial TagStep 5: TroubleshootingStep 6: Next Steps Learn how to connect ThingWorx Kepware Server to Foundation. Guide Concept This guide will teach you how to create a backend Data Model in ThingWorx Foundation that works with ThingWorx Kepware Server to collect data from an Allen-Bradley PLC and send it to ThingWorx Foundation. You'll learn how to Create a Data Model in ThingWorx Foundation that accepts information from ThingWorx Kepware Server NOTE: The estimated time to complete this guide is 30 minutes Step 1: Learning Path Overview Assuming you are using this guide as part of the Rockwell Automation Learning Path, then you have now completed each of the following installations: Connected Components WorkbenchThingWorx Kepware ServerThingWorx Foundation (for Windows) You’ve also connected an Allen-Bradley
GUIDE CONCEPTStep 1: Connection Process Keys to utilizing the C and Java SDK for ThingWorx application development GUIDE CONCEPT This project will introduce to coding examples utilized for SDKs to be used with Java and C. You can also use the Java SDK for Android development. Following the steps in this guide, you will be better prepared to creating your own application using one of our SDKs. We will teach you how to handle Properties, Entities, data, make Service calls and creating Remote Services. YOU'LL LEARN HOW TO How to create, update, and retrieve Property values Utilize Data Shapes for handling data and triggering Events Construct Info Tables for Services and retrieving data after Service calls Add key features of an edge/remote application NOTE: The estimated time to complete this guide is 30 minutes. Step 1: Connection Process he ThingWorx SDKs follows a three-step process
Step 2: Java Properties Step 2: Java Properties In the ThingWorx environment, a Property represents a data point, which has a: Name Value Timestamp Quality (optional) Define Properties You can define attributes, base types and other aspects of ThingWorx properties. Attributes The table below provides information on the different attributes that are used to define a property. Attribute Details name Specifies the name of the property that will appear in ThingWorx when users browse to bind the related Thing. description Provides additional information for the property. baseType Specifies the type of the property. For a list of base types supported by the SDK, refer to the BaseTypes chart below. BaseTypes The table below provides information on the different types of properties that can be created in ThingWorx. BaseType Primitive Description BOOLEAN BooleanPrimitive True or false
Step 2: Java Properties (cont.)Step 3: Java - Data ShapesStep 4: Java - Info Tables Step 2: Java Properties (cont.) Annotation @ThingworxPropertyDefinitions(properties = { @ThingworxPropertyDefinition(name = "Temperature", description = "Current Temperature", baseType = "NUMBER", category = "Status", aspects = { "isReadOnly:true" }), @ThingworxPropertyDefinition(name = "Pressure", description = "Current Pressure", baseType = "NUMBER", category = "Status", aspects = { "isReadOnly:true" }), @ThingworxPropertyDefinition(name = "FaultStatus", description = "Fault status", baseType = "BOOLEAN", category = "Faults", aspects = { "isReadOnly:true" }), @ThingworxPropertyDefinition(name = "InletValve", description = "Inlet valve state", baseType = "BOOLEAN", category = "Status", aspects = { "isReadOnly:true" }), @ThingworxPropertyDefinition(name = "TemperatureLimit", description = "Temperature fault limit", baseType = "NUMBER", category = "Faults", aspects = { "
Step 5: Java - EventsStep 6: Java - Services Step 5: Java - Events While connected to the server, you can trigger an event on a remote Thing. The code snippet from the Simple Thing example below shows how to use a ValueCollection to specify the payload of an event, and then trigger a FileEvent on a remote Thing. Create Event The two implementations of the VirtualThing.defineEvent method are used to create an event definition ThingWorx Platform.@ThingworxEventDefinitions(events = { @ThingworxEventDefinition(name = "SteamSensorFault", description = "Steam sensor fault", dataShape = "SteamSensor.Fault", category = "Faults", isInvocable = true, isPropertyEvent = false) })public void defineEvent(String name, String description, String dataShape, AspectCollection aspects) { EventDefinition eventDefinition = new EventDefinition(name, description); eventDefinition.setDataShapeName(dataShape); if (aspects != null) { eventDefinition.setAspects(aspect
Step 7: C - Entities and Functions Step 7: C - Entities and Functions All SDKs require a RemoteThing be created in ThingWorx in order to communicate. If many Things are to be created with the same properties, services, and events, we recommend that a Thing Template be derived from one of the supplied RemoteThing templates. NOTE: The macros are all defined in the twMacros.h header file. Define ThingShape ThingShapes are used in the ThingWorx object-oriented Data Model and used to create Things later on. In order to create a ThingShape, you can do so with the provided macros. In order to define a ThingShapes using a macro, you will use TW_DECLARE_SHAPE or TW_SHAPE.TW_DECLARE_SHAPE("SteamLocation","Address Shape","UniqueNameSpace"); Define ThingTemplate ThingTemplates are used in the ThingWorx object oriented Data Model and used to create Things later on. In order to create a ThingTemplate, you can do so with the
Step 8: C - Properties Step 8: C - Properties In the ThingWorx environment, a Property represents a data point, which has a: NameValueTimestampQuality (optional) Define Properties You can define attributes, base types and other aspects of ThingWorx properties. Attributes The table below provides information on the different attributes that are used to define a property. Attribute DetailsnameSpecifies the name of the property that will appear in ThingWorx when users browse to bind the related Thing.descriptionProvides additional information for the property.baseTypeSpecifies the type of the property. For a list of base types supported by the SDK, refer to the BaseTypes chart below. BaseTypes The table below provides information on the different types of properties that can be created in ThingWorx. BaseType DescriptionTW_NOTHINGAn empty value.TW_STRINGA modified UTF8 encoded string. Data and length are stored
Step 8: C - Properties (cont.)Step 9: C - Data Shapes Step 8: C - Properties (cont.) Register Properties Registering properties and services with the API: Tells the API what callback function to invoke when a request for that property or service comes in from ThingWorx.Gives the API information about the property or service so that when ThingWorx browses the Edge device, it can be informed about the availability and the definition of that property or service.If you used the TW_PROPERTY macro, your property has been registered. If using function calls, to register a property, use the twApi_RegisterProperty. The documentation for this function can be found in [C SDK HOME DIR]/src/api/twApi.h. NOTE: If you used the provided Macros to create your property, it has already been registered. Bind the Thing in order for your property to be bound. An example of registering a property is as follows: twApi_RegisterProperty(TW_THING, “SimpleThi
Step 10: C - Info TablesStep 11: C - EventsStep 12: C - Services Step 10: C - Info Tables Infotables are used for storing and retrieving data from service calls. An infotable has a DataShapeDefinition that describes the names, base types, and additional information about each field within the table. In order to create an Infotable, you can do so with the provided macros or functions. Define With Macros In order to define Infotables using a macro, use TW_MAKE_INFOTABLE or TW_MAKE_IT. Both macros can be used interchangeably. NOTE: The macros are all defined in the twMacros.h header file.twInfoTable* it; it = TW_MAKE_IT( TW_MAKE_DATASHAPE(DATSHAPE_NAME_SENSOR_READINGS, TW_DS_ENTRY("ActivationTime", TW_NO_DESCRIPTION ,TW_DATETIME), TW_DS_ENTRY("SensorName", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("Temperature", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("Pressure", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("FaultStatus", TW_NO_DE
Step 13: C - Support Other PlatformsStep 14: Next Steps Step 13: C - Support Other Platforms If you are using a platform that is different than the options provided in the CMake configurations or in the C SDK configurations, you can add your own computer type. CMake has its own custom toolchain support that enables you to add your computer to the CMake configurations. Go to the CMake Toolchain.NOTE: The C SDK provides a CMakeList.txt file that contains the setup instructions for the C SDK. Make changes only if you have verified the configurations and compiler information.Create a CMakeList.txt file based on your OS inside the folder in which you would like to setup your application.Modify the Platform Configuration section of the CMakeList.txt file to add your personal computer architecture if it is not already listed.Ensure your configurations are in your application's CMakeList.txt file. An example of the Pla
Guide ConceptStep 1: VideoStep 2: Next Steps Explore the ThingWorx Foundation IoT application-building platform in a convenient video format. Guide Concept This project will introduce you to the principles of ThingWorx Foundation by creating a working web application, guided by a convenient video. Following the steps in this guide, you will create the building blocks of your first application for the Internet of Things (IoT). You will use ThingWorx Composer to create Thing Templates, which are then used to create Things that model the application domain. A simulator is imported to generate time-series data that is saved to a Value Stream. After modeling the application in ThingWorx Composer, you'll use Mashup Builder to create the web application Graphical User Interface (GUI). You'll learn how to Create a Thing Shape, Thing Template, and ThingStore data in a Value StreamDownload and install a data simulatorCreate an application UI NO
Guide ConceptStep 1: VideoStep 2: Next Steps Watch a video tutorial on utilizing the Mashup Builder to create a User Interface (UI) for your IoT application. Guide Concept This project will introduce the ThingWorx Mashup Builder through the use of an instructional video.Following the steps in this video-guide, you will learn how to use this tool to create a Graphical User Interface (GUI) for your IoT Application.We will teach you how to rapidly create and update a Mashup, which is a custom visualization built to display data from devices according to your application's business and technical requirements. You'll learn how to Create new MashupsChoose a Static or Responsive layoutAdd Widgets to your MashupBind data Services to Widgets in your MashupCreate a functional GUI with applied usage of Widgets and Services NOTE: The estimated time to complete this guide is 30 minutes Step 1: Video Click the link below to enjoy the vi
Hi Community! I would like to know if would be possible to create mashups from services using mashup template, exactly like we do to create things dynamically.Just to better exemplify my use case, I would like to create a mashup for each thing created dynamically because on this mashup everything is equal besides the values on the collection widgets. Thanks in advance!Felipe Duarte
Hello,How to write Media query for label and ValueDisplay, making a responsive mashup, so based on the Screen Resolution, the font size of the Label and ValueDisplay should Increase and Decrease.Can someone help me to write a Media Query?Thanks,
Whenever in a Thing a subscription on the DataChage of a property is activated, it is necessary to save information on this activation in a table. In addition to inserting in the data table I trace the event with a logger.error. At the end of the test I find that the number of logger.error is more than the rows that are saved in the table.BRDimitri
GUIDE CONCEPTStep 1: Learning Path OverviewStep 2: New MashupStep 3: Add WidgetsStep 4: Add DataLearn how to create a web application to monitor and control an Allen-Bradley PLC. GUIDE CONCEPT This guide will create a ThingWorx Foundation Mashup GUI to monitor and control an Allen-Bradley PLC connected via ThingWorx Kepware Server. YOU'LL LEARN HOW TO Create a MashupAdd WidgetsAccess backend data via Mashup Data ServicesTie data to WidgetsCreate a simple web application that monitors and controls a PLC NOTE: The estimated time to complete all parts of this guide is 30 minutes. Step 1: Learning Path Overview Assuming you are using this guide as part of the Rockwell Automation Learning Path, then you have now completed each of the following installations: Connected Components WorkbenchThingWorx Kepware ServerThingWorx Foundation (for Windows) You've also connected an Allen-Bradely PLC to Connected Components Workbench and then
Step 5: Tie Data to WidgetsStep 6: View MashupStep 7: TroubleshootingStep 8: Next Steps Step 5: Tie Data to Widgets The Mashup now has access to the backend data via get/set Data Services. In this step, you will tie these Data Services to the Checkbox Widgets to pull and push information. Click the Data tab in the upper right Under GetProperties, click and drag the arrow next to Channel2_myPLC_Coil2 onto the Left Checkbox.On the Select Binding Target pop-up, click State. Click the Data tab againDrag Channel2_myPLC_Coil3 onto the right Checkbox.On the Select Binding Target pop-up, click State. Enable Automatic Updates The GetProperties Mashup Data Service will now propagate the State of Coil2 and Coil3 from the PLC onto these Checkbox Widgets. The GetProperties Service will be called automatically when the Mashup loads, so the Checkboxes states will be
GUIDE CONCEPTStep 1: ScenarioStep 2: Create MashupStep 3: Add WidgetsStep 4: Add DataStep 5: Bind DataStep 6: View MashupStep 7: Next Steps Create an Engine Failure Prediction GUI to warn about customer issues. GUIDE CONCEPT This guide will use ThingWorx Foundation's Mashup Builder to create a Graphical User Interface (GUI) to display results from Analytics Manager comparisons of your analytical model to real-time data. Following the steps in this guide, you will learn how to utilize Widgets and backend data to quickly visualize customer failure conditions. YOU'LL LEARN HOW TO Create a MashupAdd Widgets to represent different dataBring Backend Data into the MashupTie data to WidgetsView Analytical Results in a convenient GUI NOTE: The estimated time to complete all parts of this guide is 30 minutes. Step 1: Scenario In this guide, we're finishing up with the MotorCo scenario where an engine can fail catastrophically in a lo
GUIDE CONCEPTStep 1: ScenarioStep 2: Create MashupStep 3: Set LayoutStep 4: Adjust Header Enhance your Engine Failure-Prediction GUI. GUIDE CONCEPT This guide will use ThingWorx Foundation’s Mashup Builder to create a more advanced Graphical User Interface (GUI) than the one we originally created to display results from Analytics Manager’s engine-failure predictions. Following the steps in this guide, you will learn how to utilize Widgets and backend data to more completely visualize customer failure conditions. YOU'LL LEARN HOW TO Create a Mashup with a HeaderDivide your Mashup into Sub-sectionsUse a Contained Mashup to reuse developmentStore historical data in a Value SteamDisplay historical data in a Time Series ChartShow spreadsheet data via a Grid WidgetTie Mashup controls into the ThingWorx backend NOTE: The estimated time to complete all parts of this guide is 60 minutes. Step 1: Scenario In this guide, we’re t
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.