Jump to content

pascal

Members
  • Posts

    97
  • Joined

  • Last visited

  • Days Won

    12

pascal last won the day on July 24 2023

pascal had the most liked content!

About pascal

  • Birthday 07/15/1969

Profile Information

  • Gender
    Male

Recent Profile Visitors

7,705 profile views

pascal's Achievements

Advanced Member

Advanced Member (3/4)

8

Reputation

  1. In my opinion, like the sequenc to "stop the motor and reverse the direction with another speed", you have to check this in accordance with the machine you want to control. first you have to stop the engine, then , when checked the motor is topped, sending the new speed and afterwards, setting the run command. If you want to take full control of the modbus communication, you have to create your own routines to make the modbus com. In fact, it's really simple..... modbus tcp/ip communication goes with a TCP connection and sending following data : transaction ID and protocol are 00 00 00 00 message : first byte is function code (like 03 for read holding register) second word (2 bytes) is startadres last word (2 bytes) number of words to read... check this manual : https://www.fernhillsoftware.com/help/drivers/modbus/modbus-protocol.html If you want to be sure, maybe packetsender(external free software found on the internet) can help you to send the commands to your machine and see how it reacts....
  2. I had a similar "problem" I made a calendar as a indexed table, with 366 days (so it's always a leap year) to know the index of the current day, I take the day of the month and add a fixed value corresponding the actual month..... so if we are may 2, then I add 91 minus 1 and my index in my data table is 92.... used a switch case....
  3. unfortunately, you can't have a struct in a struct.... nor an array of structs πŸ˜’
  4. have you tried to do it with aperiodic sending ? I don't know if the periodic sending is done on how you program your modbus thing. If you program a aperiodic, then you send your group in 1 command. but like ausman said -> maybe a good idea to send it with a pc software
  5. Gabriel, when you carefully read the alicat manual, you must send 2 modbus commands to set the setpoint... you must send the first 2 bytes to adress 1010 and the second 2 bytes to adress 1011... (i think) (taking care of big or little endian) so you can not send a real, but 2 int16 variables ! so you have to split your real into 2 int16 variables
  6. pascal

    Json struct in MQTT

    Hi Ivgeny, Thanks for your reply. Indeed, I think I have, like you said, to use the message composer for publishing nested structs in JSON and send them as raw data. I only have 1 question about the message composer -> you can scan a message, but what with receiving a variable as ascii, but the length of the ascii can be different... the ascii variable in JSON is always between "", but I don't see how to program this. I thought the ascii variable has a fixed length in message composer ?
  7. Hi, I want to communicate with a IoT trough MQTT. I managed to send simple JSON commands, but i'm looking how to configure more difficult JSON structs... I want to send this telegram to my IoT device, but I don't have any idea how to setup my json struct.... has to look like this..... { "FountainSchema": { "enable_pump_1": true, "startclock_pump_1": "08:30:00", "stopclock_pump_1": "14:00:00", "enable_remote_frequency": false, "remote_frequency": 32.8 } } I know I can make a struct like this : enable_pump_1 = BIT startclock_pump_1 = ascii[8] stopclock_pump_1 = ascii[8] enable_remote_frequency = BIT remΓΉote_frequency= BIT but how do I get the tag FountainSchema into my json struct ? like I want to receive some publications made from my IoT device : { "metrics" : [ { "name" : "response", "tags" : { "organization_id" : 1, "company_id" : 1, "tasktype_id" : 91, "service_id" : 77, "project_id" : 501, "task_id" : 1659, "property_id" : 111, "propertytype_id" : 999 }, "fields" : { "measurement" : "switch_pump_1", "value" : 5, "type" : "switch" }, "timestamp" : "2024-02-14T14:45:16.000Z" } ] } how and where do I program my JSON struct I want to publish or to subscribe ?
  8. Marko, you can't reset an input.... an input is not like a self made bit. Like you said, you have to copy the state of your inputs into another tag(struct) and reset your tag....
  9. Saragani, I send the project already to support -> ticket UNI-88397 to Hananel Vanunu In this project I have also problems with modbus TCP/IP communication (also a post on the forum : MODBUS master problem connecting remote slave(s)) this error (for each loop) can be found in project is to big to upload here...
  10. I've made a routine - a for each loop - with a list of tags including buffer tags and real tags. I want to copy one tag (real) into a data table with the instruction Set DTI column value B = real value C= real value of the structure current item after compiling I get a lot of errors.... as you can see, 118 error's........ But I found a solution -> store the real tag of my structure into a local real tag and then put this tag as value to store (C), then I have no error's..... Good to know, so I wanted to share this with thee community (or maybe this is a bug?)
  11. Hi, I have a table with all my IP adress of all my connected things. I made a webpage, showing my table with all the IP adresses when clicking on a field in the table, I put the IPadress (ASCII) into a tag -> IP adres (reading the selected row of the datatable) on the webpage a put a hyperlink "GO TO" with the adress of this hyperlink the value of tag IP adress but when clicking on the hyperlink, he's calling another IP adress..... I did an inspect of the webpage (clicking right mouse button 😁) and found something strange.... BUT I FOUND a solution ? -> the problem is the leading zero's of the IP adres in my tag.... when I remove the leading zero's, then I have a correct hyperlink (only tried one (172.20.25.40) something to keep in mind...
  12. Tim, what do you mean with set an instance ? you can read a row of the table, change the value of column 3 and save again the row....
  13. Elad, with UaExpert, when disconnecting the server, my counters goes from 2 to 1 (because kepware is also connected)... But .... today I was trying some more things on my kepware and everything is working fine now. The thing is, I didn't changed anything. Not on my PLC and not on my Kepware... (altough I deleted on PLC side some not used communication protocols ( on CPU, deleted 1 UDP port I didn't used anymore and 1 TCP server with 16 number of connections, also didn't used)) Last friday this hadn't brought me a solution. When I started checking on monday again, suddenly it worked ??????? strange..... I still have to check some things with our IT department to know why it works (now)..... I'm not accusing somebody, but most of my communication problems are IT related 😁😁😁(and they never never did something) PS : When I had al the trouble (last week) and I disconnected Kepware and my UaExpert, the number of connected clients went from 2 to 1(unclean exit Kepware and clean exit of UAexpert), but after the not clean disconnection of Kepware I couldn't even connect again with UaExpert.... I'll keep you all informed of my situation..... TO BE CONTINUED....
  14. i'm using OPC-UA, but I don't see any certificates.... altough my system is reading the OPC-UA variables without problem.... (unless I disconnect my OPC-UA client -> see my post on Unilogic software) i'm trying to copy my opc ua clients certificate to the PLC, but I don't know in wich directory I should place the certificate on my usb...
  15. Hi, my system : USP-104-X10 with B10 I have 3 PLC's (all same model and firmware (1.33.161)) communicating via OPC UA server with Kepware Everything is working perfectly.....until I stop my Kepware (to do some upgrading or other stuff) When I shutdown my Kepware I see following OPC-AU diagnostics differences : PLC A : PLC B: You see the difference in the current session of current subscription count -> PLC A is 0 and on PLC B it stays on 1.... When I restart my Kepware, I'm able to reconnect on PLC A, but not on B ! My Kepware gives me following error : (PLC B is GBS UNI BD1) The PLC B is actually refusing the communication The only thing is to give a cold boot on the PLC B to restart my communication... I checked (several times already πŸ˜’πŸ˜’πŸ˜’) all parameters (on PLC side and on KEPWARE) but all are the same... any suggestions ?
Γ—
Γ—
  • Create New...