I'm using Raspberry Pi to make an API Post call to an OPC Server. It would have to use Modbus Protocol to push in the data, but the step I'm struggling with is posting a synthetic data into the Server to check if it works before going into details.
Anyone have any insight on how I can do this?
The PLC and OPC(UA) Server can communicate each other, you don't need to do anything.
Usually we use Raspberry Pi to subscribe and read data from OPC UA Server, then pack it and post to our server. there's a set of APIs. The server will store data into Database.
So here is the flow:
PLC -> OPC(UA) Server -> Raspberry Pi(Node-Red, OPC UA Client) -> RESTful APIs -> Database
Then we can query it from some web application.
When the Node-Red flow starting, it will get a tag list from API, then store it into a local MySQL database in case the network is down. then start to subscribe or read something. Data will also have a local copy and then send to remote.
Related
I am developing a project about gps. I am trying to read the location from satellite and want to send them a server by using sockets. My module 'a9g' can read the location and send the things to a server.I have a domain and hosting. Now, I am trying to write a socket server which listens and accepts socket requests and can receive and transmit data. After, I will deploy it to the internet. I tried to do it in asp.net core websockets but my device can't connect to server that I wrote. I can't figure out which programming language should I use and how can I write and deploy a server. (My hosting is windows server.) I will add some photos of my microcontroller's functions and an example server.
Functions:
Socket Functions of microcontroller 1
Socket Functions of microcontroller 2
Socket Functions of microcontroller 3
There is an example server of ai-thinker: http://tt.ai-thinker.com:8000/ttcloud
I need exactly something like that. I have to accept many clients(my modules) and data exchanges between server and them. Could you help me how can I do that?
Additional notes:
1. I can connect the ai-thinker's example server. Send, read data from there.
2. I need to deploy it to my hosting server, so it should work on internet not only locally.
I am tring to create a vehicle tracking system based on GPS & GMS using Teltonika FMB920 tracking device. I am a bit confused on following things:
How to setup the server for communicating with the device.
How to save the data sent from the device on the server.
Can I use any cloud platform like Azure or AWS IoT features for this purpose.
Any guidance in this regard will be really helpful for me.
How to setup the server for communicating with the device.
Teltonika fmbxxx typically send data using websockets TCP or UDP protocol. To setup the server correctly, the port that will be listening for data needs to be opened in the server and the server address and port need to be configured on the device with the teltonika configurator tool
how to update server settings in configurator tool
How to save the data sent from the device on the server.
This depends on your use case but a good idea could be to use nosql database to save the data from device received by the server since its easier to scale when data size grows and easy to query and read the data
Can I use any cloud platform like Azure or AWS IoT features for this purpose.
AFAIK yes you can. essentially what is need is server instance with a websocket client application that can receive data from tcp/udp protocol
I have Analyzer which connects to a computer with cat5 cables . This Computer reads the data through a software called ComVisioner .ComVisioner has two Modes, one is Server Mode and Other is Client Mode A Server software acts as the engine in the system, providing one or more clients with information.
Server version is installed on a single computer . Once Server version is installed it collects data, performs calculations, produce reports and so on.
The ComVisioner client runs in the same computer as the server. Other clients can access the same single server through a network, providing that the software license allows more than one client at the same time
so there is Two client computers who access the as mentioned above .this all connection is done by Network cables . This part is fine
As License of Client is very expensive our company wants to add a OPC software so that more user can acquire data .As i have no knowledge on Opc part please suggest me How can i do it ?. what sort of software should i use ?. Can i install this software different pc with is connected in same network
There is also one more software installed in that computer which pushes the data as Modbus protocol
First, you need to make sure that the ComVisioner can give OPC data. (work like opc server). This should be indicated in the documentation.
Download the free OPC client, and make sure you can read the data (for example you can use, matrikon opc explorer or kepware quick client (I like it more, it goes together with KepServerEx, to download them you need to register)
If you can connect and see the data, then there will be no problems with access to the data. Next you need to find a solution for which Opc client suits you. Probably some SCADA system, but some good SCADA also cost a lot, and require a lot of development time.
I don't recommend you try to use modbus if there is opc. If you will use modbus you will have many problem with addressing and value format.
ps
We had a problem with expensive licenses. As a result, we solved the problem by give access for programm for clients via RDP (remote desktop connection)
Is it possible to connect an OPC UA server to another OPC UA server, in order to redistribute its data?
In fact, I have a small device which runs a small OPC UA server that exposes some data. The device is running in a private network. Then I have the main OPC UA server accessible from the internet, where I would like to view some of the small device's data, together with some more generic data.
Yes, it's possible, you just need a server that has this feature. It's not a standard part of OPC UA that any server will be able to do.
One option would be to use KEPServerEx's client driver.
OPC UA is a server-client architecture. Therefore, you cannot make two servers talk to each other directly. There must always be an OPC UA client implementation between them. Yes, KepServerEX does support this feature as having an OPC UA Client Driver out-of-the-box. However, you can implement your own little OPC UA client between the servers as a gateway too, which may suit your solution better I believe.
As far as I understand this will be possible by using an OPC UA Aggregation Server as main server (which is accessible from the internet).
You could test it with the open source UA-NetStandard Aggregation Server.
I wonder if there is any service in Amazon Web Services that i can use to catch the GPS data that send from my GPS tracker to a specific host:port or domain:port ?
My device is not a MQTT client so i can't use AWS IOT
Is EC2 the only choice ?
I want to integrate those GPS information in my web app ,right now it's in heroku hosting but i plan to transfer it to AWS if i solve this issue.
I am not familiar with the interfaces that your GPS trackers use. However, provided that you open the IP / Port in your security group so that your GPS tracker can connect to your own software, it will work.
[EDIT after question]
There are many ways (and services) in Amazon to capture data. The real answer depends on how your GPS tracker is connecting to an endpoint, how it is sending data and what interface it expects.
If your tracker supports using a REST style interface, you could use API Gateway with Lambda to process your tracker data and store in DynamoDB, S3, etc. Kinesis Firehose might be another service that could work.