Recently active
Hi everyone, I have a DataTable with several entries. When I click an entry, a service runs and loads the images from the imagePath stored in that entry. Everything works fine normally — the Collection widget displays the correct images. However, when I switch between entries very very fast, sometimes the images from a previous entry stay visible and do not update, even though the selected entry has changed. It looks like the Collection widget doesn’t refresh properly when service calls overlap or happen too quickly. Has anyone experienced this behavior or found a reliable way to force-refresh the Collection widget when rapidly changing entries? Thanks,Jamal
I'm having a problem getting Flow 10 to get configured with Foundation 10. All the services start and I can connect to Foundation via the Flow nginx port but I get the following error when running WorkflowSubsystem.ValidateFlowSetup: Found 1 issues. [FLOW-API-01] - Failed to connect to Flow: Internal Server Error For more information, refer to the 'Troubleshooting Your Installation' topic in the Help Center. The ApplicationLog has these errors: 2025-11-21 14:29:06.092+0000 [L: ERROR] [O: c.t.s.s.f.WorkflowSubsystem] [I: ] [U: Administrator] [S: ] [P: ] [T: https-openssl-nio-8443-exec-7] Failed to get Delegated UserOAuths : Internal Server Error 2025-11-21 14:29:06.092+0000 [L: ERROR] [O: c.t.f.f.FlowDelegatedOAuthFilter] [I: ] [U: Administrator] [S: ] [P: ] [T: https-openssl-nio-8443-exec-7] Unable to initialize session attributes I don't have SSO currently enabled although I did have it on in previous attempts so I'm not sure with there is an OAuth error.
The KepServerEx is configured as OPC DA Client to connect the OPC DA Server on another machine. It get callback failure and bad data. While using OPC Quick Client connected the OPC DA Server to get data directly. It get good data. Two servers are on the same domain but running with different Log On account.
Hi everyone, I am currently designing a simplified deployment setup for our ThingWorx environment based on the standard multi-stage pipeline. Our planned flow looks like this: 👉 Local Instances (Developers) → DEV Environment → Git (Build Pipeline) → Artifact Repository → TEST Server → Production Servers (multiple locations like China, Italy, etc.) This structure seems efficient for our team and helps streamline deployments, but I’m unsure how to handle bug fixes in this setup. For example, if a bug is found in production, what’s the best practice for fixing and validating it —should it go directly from DEV → TEST → PROD again, or is a temporary branch/environment recommended? We are deploying our projects as extensions. Would appreciate any insights or examples from those who’ve implemented a similar lightweight pipeline. Thanks in advance! — Jamal
We copied the virtual machine from old physical host to new one. The kepware licenses are broken. All the operation system is same as before. Why the license don't work? This issue can be fixed?Thanks.
Resources["ContentLoaderFunctions"].PostJSON调用大模型接口,短回复没有问题,长回复报以下错:javascript service. Message ::Read timed out。请问是不是系统又限制?在哪里可以更改配置?
Hi, I have this code I can compile with C-SDK I want to make a .snap from.I'm using the version 3.2.0.3436.I used cmake and everything worked fine between thingworx and the agent I coded.The architecture is as such : > c-sdk > build > examples > my code > lib > src > test cmake is done in c-sdk>build The thing is, I now need to make a snap from this project and I don't really know where to start. If I make my snap from my project, I have the same errors I used to have before I did cmake in c-sdk>build (twApi.h: No such file or directory). I even tried to correct it by adding this in my CMakeLists.txt : include_directories( ${TW_SDK_PATH}/include include ${TW_SDK_PATH}/src ${TW_SDK_PATH}/src/api ${TW_SDK_PATH}/src/config ${TW_S
Hello, We run Kewpare 6.16 on a VM Hyper-V for long time. The old system was Windows 2012 R2 and we use Kepware to feed our own Software using OPC DA communication. This system was running quite fine. After we migrate the VM to New Hardware our software is dying on resources on the system. After troubleshouting we found out that the request from our Software (Multi Clients) via Kepware to the Data Server are not responded in time. But looking at the Task manager of the system we could not find any issues. Processors, Memory, Disk and Network are showing no issues. the new hardware is comparable to the old hardware.When we disable the Kepware Service on the computer the system is running fine and is responding timely, but starting the communication with Kepware let the system dying of resources. It seem the requested are not answered timely. When starting only one or two clients the system is reacting correctly but with more clients started on the system the system getting slo
I have used Modbus Device Simulator (PyModbus) to run 200 Battery, 90 PCS and 10 FIP Modbus devices on localhost each with 1000+ registers.The simulator created devices sequentially from a port you specify, e.g. 300 devices starting on port 6001 will occupy the ports 6001-6300 with specified number of registers. Refer the attached test screenshots.All simulator devices are working correctly and can see values update with open ModScan client software, but all the values are zeroed in the OPC Quick client and in FT View Live Data Test Client even though the comms quality is Good. Refer the ModScan Output image.Unfortunately, I cannot set the ports for the channels independently. As soon as I change the port on one channel, same port gets assigned for all channels. I tried using FactoryTalk Live Data Test Client, with static registers (no random values) and I was able to read and write values from OPC and FT test client. The KepServer Enterprise 6.18 and the monitoring
I can't seem to consistently get the Read/Write Default User Account when I need it. Any thoughts on what is grabbing it or how to find out what User has it? Much less a way to boot them off and wrest control.
I recently faced an issue in ThingWorx Mashup related to menu visibility for another user, and although I found a workaround, I’d like to understand why this happens and if there’s a better alternative. Problem:I created a mashup that includes menus and assigned visibility and runtime permissions to another user.When I log in as myself, I can see the mashup and all menu details correctlyBut when the other user (with runtime permissions) logs in, the mashup loads but the menu items are not visible.What I Tried:When I tried to fetch the same menus through a service call, the menus loaded properly — both for me and for the other user.So, fetching via a service worked, but showing them directly in the mashup did not.My Questions:Why does this behavior occur even after providing proper visibility and runtime permissions?Are there additional permissions or settings (like for entities, data shapes, or mashup parameters) that affect menu visibility?Is using a service to load menus dynamic
Hi Community,We recently upgraded our platform to ThingWorx 10, which includes new AI capabilities, and I’m looking to better understand how these features can be utilized in real industrial applications.For additional context, we are using ThingWorx 10 together with SCPA 164, so I’m also curious about how these AI features align with or enhance SCPA-based solutions.Specifically, I’m interested in learning:How the new AI/ML features in ThingWorx 10 can help improve or optimize existing applicationsWhat use cases these AI features are intended for, and where they provide the most valueHow other developers are integrating or embedding AI into mashups, workflows, or analyticsBest practices, architecture guidance, or known limitations when using AI features in ThingWorx 10Whether any extra configuration or supporting components are required, especially when working with SCPA 164If anyone has hands-on experience with the AI features in ThingWorx 10 or has already implemented them in product
Monitor the application that monitors your connected assets! Hello ThingWorx Community! We are excited to announce the release of a new Best Practices Guide on monitoring your ThingWorx-based applications, complete with an accompanying enablement video! We understand that it is critical to keep the IoT application up and running that is helping increase the uptime for your factory and critical assets. In recent ThingWorx releases, particularly since 2024, we've dedicated significant focus to strengthening IT admin and developer productivity. A major improvement is the native support for scraping all system metrics and logs through OpenTelemetry. This enhancement simplifies ThingWorx monitoring using industry-standard, open-source tools like Prometheus and Grafana, which are the de facto standard for any modern deployments and DevOps processes. The comprehensive guide attached to this post, published by our field expert @geva , details all the best prac
Thingworx: 9.3 KepWare 6.18Some Industrail Things can not connect to KepWare. The Industrial Gateway is set. All other Things are receiving data and everything is fine. Only 5 assets won't connect again.
Hi ! Does anybody read tags from GE Quickpanel+ ?Which drivers we should use ? GE Ethernet ? What model ? PAC Systems ? We have downloaded runtime HMI project (Proficy Machine Edition 10) on GE Quickanel+ 755xxx. But we have no source project. We can read OPC tags from panel via Proficy View OPC server. Used fromat is STATION IP\NameTagIs it possible to read tags via Kepserver OPC ?
Hello, I am a new user to Kepware, I setting up a flow of SQL data -> Kepware (querry to json) -> IoT gateway (REST server).Although the data in the OPC quick view look fine (attatch picture), the output from iot gateway contain un wanted character, how do I clean that ? { "readResults": [ { "id": "SQL2JSON.SQL2JSON.JsonData", "s": true, "r": "", "v": "[{\"id\": 1, \"pressure\": \"10\", \"temperature\": \"1\"}, {\"id\": 2, \"pressure\": \"190\", \"temperature\": \"1\"}, {\"id\": 3, \"pressure\": \"170\", \"temperature\": \"1\"}, {\"id\": 4, \"pressure\": \"0\", \"temperature\": \"0\"}, {\"id\": 5, \"pressure\": \"0\", \"temperature\": \"0\"}, {\"id\": 6, \"pressure\": \"118\", \"temperature\": \"70\"}, {\"id\": 7, \"pressure\": \"118\", \"temperature\": \"70\"}, {\"id\": 8, \"pressure\": \"118\", \"temperature\": \"70\"}, {\"id\": 9, \"pressure\": \"118\", \"temperature\": \"70\"}, {\"id\": 10, \"pressure\": \"118\", \"temperature\": \"70\"}, {\"id\": 11, \"pressure\":
I'm looking into utilizing the Universal Device Driver (UDD) for getting data from a REST API, however the API I need to communicate with is on a secure port requiring https. I've found two articles that specifically say TLS is not currently supported by UDD:https://www.ptc.com/en/support/article/CS446447?source=searchhttps://www.ptc.com/en/support/article/CS442775?source=searchSince the UDD profile is user-defined, I'm still curious if there's a way to implement TLS into the connection via the Javascript profile. Here are my questions I'm looking to get answered: Has anyone successfully implemented TLS/HTTPS calls via UDD?How does the back-end Script Engine make the calls to the remote host? Does the Script Engine use a particular library for the calls? Is TLS support on the UDD roadmap?
🌟New Best Practice: Using LLMs with ThingWorx — Version 2.0 Now Available!Everyone is talking about Generative AI, and Large Language Models (LLMs) continue to transform how organizations analyze and interact with data. Beyond chatbots and text generation, these models are increasingly being used to make sense of complex industrial data — from factory sensors to production analytics — helping teams make faster, smarter decisions.ThingWorx, PTC’s Industrial IoT platform, enables secure connectivity to machines, systems, and databases across the enterprise. By linking ThingWorx with an LLM, you can create an AI Assistant for industrial operations that provides insights, answers natural-language questions, and supports data-driven problem solving — all while keeping your operational data secure.🧩 What’s New in Version 2.0This new release builds on the original ThingWorx + LLM accelerator and introduces major new capabilities designed to make LLM integrations more powerful, flexible, and
Hi everyone, I’m working with a ThingWorx FileRepository where each subfolder contains only 3–4 images (like step images in an Experience).Whenever I add or delete images, I want to re-sort and rename all files sequentially — e.g., 1.png 2.png 3.png 4.png so the order always stays clean and consistent. Question: Given that each folder has only a few files (3–4 images), should I: Keep this simple in-ThingWorx loop (since performance impact is negligible), or Use a REST API batch rename approach for better scalability? Option 1 – In-ThingWorx loop (current working code) ✅ Simple and clear⚠️ Calls RenameFile() multiple times (one per file) const repoThing = Things[me.getFileRepository()]; for each (var row in existingExperienceStepFiles.rows) { var lastSlash = row.path.lastIndexOf("/"); var dir = row.path.substring(0, lastSlash); var newName = (++i) + ".png"; var newPath = dir + "/" + newName; repoThing.R
Hello All, I have an API gateway, which also acts as an OIDC IdP. There's a Windchill instance which is configured to serve APIs to that gateway with SSO. There's an external app, which uses that setup, and it works fine. I'd like to investigate an idea of connecting Navigate through the same API gateway, and not directly to Windchill. I expect to do some configuration on the ThingWorx side, but zero changes on the Windchill end, because other API gateway app(s) already work, so I assume that there's nothing to change. Before I spend time on trying to set it up, just wanted to check with the community -- is it a supported setup, and what kind of issues should I expect? Also, this might be a very lame question, but what do I need to configure on the ThingWorx side to make an external OIDC IdP work in this scenario? Thanks, Constantine
Hello Team, Am trying to upload some pdf files from thingworx repository to azure blob storage using REST API, Could you please share any sample code available for the same? below is what am trying var params = {url: "https://<AccountName>.blob.core.windows.net/<container>/<folder>?<sasToken>",headers: {"x-ms-blob-type": "BlockBlob"},content: fileContent, // Ensure this is raw file contentcontentType: "application/octet-stream",timeout: 60000 // 60 seconds};// Use ThingWorx HTTP POST/PUTvar result = Resources["ContentLoaderFunctions"].PutText(params); Not getting any result or error, please help
Hello everyone, I’d like to open up a discussion around the announcement that PTC is selling its industrial connectivity and IoT businesses — namely ThingWorx and Kepware — to TPG. Thingworx sold As someone working in industrial connectivity, IoT and manufacturing systems (and many of you probably are as well), this raises a number of questions and potential implications. I’d love to hear your thoughts. Below are some of the issues I believe we should consider: Potential positives The transaction is being promoted as a growth enabler: PTC says this move will allow the ThingWorx and Kepware businesses to “gain additional resources for growth” under TPG. PTC For users of ThingWorx this could mean heavier investment, new features, better connectivity, or stronger backing — depending on how TPG steers the business. The shift might allow PTC to focus more on its core “Intelligent Product Lifecycle” vision (CAD, PLM, ALM, SLM) — which could mean clearer strat
Hi everyone, While experimenting with InfoTables inside a ThingWorx service, I ran into some confusion regarding a documentation example that seems to contradict actual platform behavior. I’d like to get clarification (and maybe spark some discussion) around this. Documentation Example In the documentation , I found the following pattern: var referencedInfoTable = Things["thingName"].myInfoTable; var tableLength = referencedInfoTable.rows.length; for (let i = 0; i < tableLength; i++) { referencedInfoTable.rows[i] = { field1: i, field2: i * 2, field3: i * 3 }; } Things["thingName"].myInfoTable = referencedInfoTable; // Comment from docs: // "Because you are not using .AddRow() it doesn't require access to the referenced object's .AddRow() method, // therefore it doesn't need to access the cache." The Problem When this code runs in ThingWorx (especially versions 9+ and 10+), it throws: class org.mozilla.javascript.NativeObject cannot be
Hello,Im sitting with the grid widget in a mashup and have bound an infotable to the data property and have now also bound other data that is suppose to be "child" data to the first data property. How do I successfully make the expandable functionality in the grid widget work? I've tried to bind the "child" data to the ChildData property of the grid widget and the "+" buttons are showed in the mashup but nothing happends (not expanding/showing child data) when i click the "+" buttons. Additionally, no clear expandable event seem to exist for the grid widget. Anyone here with Child data configuration knowledge for grid widget in Thingworx? Thanks in advance.Sincerely,Pontus Koontz
When using drivers with HMI applications like InTouch or Ignition, the tag in its database could have address modifiers or simply the tag type to let the Modbus driver know that you're looking for a floating point that is using more than one register. It appears that there's no way to accomplish the same thing when using KEPServerEX. Instead of a Modbus driver specifically written for Intouch or Ignition HMI applications.The only option is to manually create tags inside of KEPServerEX and then read those from the HMI?
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.