Jump to content

ORSO2001

Members
  • Posts

    233
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by ORSO2001

  1. hi thefunkybuddha, i don't know what sernsor are you using...I am supposing that in someway (on demand) you are able to get info from these sensors...then couple these info with some global tags (or struct...maybe) and couple these tags/struct with the relative HMI elements (text, number...)...all is done...but seems too simple...what sensors are you using?
  2. Hi didi, i think that you are talking about a feeding system that has to works in FIFO mode...right? I suggest to use a DTI where you insert the receivers that need to suction and a counter, that you will increase/decrease, about the DTI position to insert or remove. then, if necessary, move the receiver of row 0 in the "working flow".
  3. hi Vesp123 what I meant is that the unistream share a system variable called "General.Milliseconds Counter" that is an UINT32 variable that start to count the milliseconds from the PLC power ON. so you can save, when you want, its value to check how much time is gone...like a timer...obviously, or better I think that is obviously, this procedure need a "finite state machine" logic...so some other variable/s in your struct will define which steps are you performing for each single struct...attached an example about what i meant. MILLIS.ulpr
  4. i forgot to write that if you need a multiple timer you can use the "millis" control...instead of a TON or TOFF or other timers. then in your struct you will have an "startMillis" variable that will be updated when wil be needed...and with this you can check the timing of your actions.
  5. hi Vesp123, if I well remember the "local tag" can't be |P| or |N|...because these are create and destroyed every cycle..then they can't remember the previously state...then...I have many projects that has to manage many devices in the same way but with different timming...then, usually, I create a struct that contain all the information about the specific device and I pass this struct at the UDFB...then I know if the specific device was "busy" or "free" or "running" or other else every new cycle.
  6. hi...can you share how your slave are configured as registers read/write and also how you call the modbus function in the ladder?
  7. dear alexandre_poliplante, to read the value of "corrente media [A]" are you point the register 5 (endereco long) or 10 (endereco short)? I think that you have to point the register 10 and read 2 contiguous registeres...so 10 and 11.
  8. Dear Antal, the PLC will execute exactly each single command...so if you have 2 or more contiguous "simple coil" command the status of the last win. to avoid this you have to use the SET and RESET coil; in this way if cois is SET a RESET event has to arise to set it to "0". however my suggest is have only one place where a coil, coupled with an output, is SET or RESET...following the relative conditions.
  9. Dears, by the "SD MANAGEMENT" I can select the max files stored in each folder...so the PLC will automatically erase the older files when the limit is exceeded...how to know when this will happens?...is a BIT that I can check or I have to take in care the files count? thanks
  10. dears, i think that I understood the "probem"...at the end I was adding some String items , also the ";" separator and the "EOF" simbol", bu tthis last has to be added directly in the buffer as "costant" and not as String. Now seems works...I have to try to read from SD file into the buffer...
  11. Dears All, i am concatenating 4 String UTF-16 formated; between the strings I insert a ";" separator (also UTF-16 formated)...so...I am able to have the end buffer properly filled with th einformation...but I am not able to have a "new line" when I try again to append the buffer at the SD file. I tried to insert, at the end of the buffer, a lot of characters (u\2424; u\000D; u\000A...etc alone and conbined )...but nothing works...or better...with the file saved as TXT and with the u\000D in the "windows note pad" I see the right lines...but if I use "notepad ++" or i try read this as CSV i have a long single line. how to have a "new line" ? thanks
  12. dear TJ, some not clear info from you...I mean...you wrote about ModBus TCP but the document attached report, for these devices, ModBus RTU by RS485...have you a gateway in the middle?
  13. Hi Dave, in my opinion this is a good request...because, I think, all of us have one or more debug pages about the I/O status (also to force the output as test)...and always I have to manually write the "name" of the I/O that usualy is the same, or can be, as usedin the "alias".
  14. hi remy, maybe my suggestion is not so smart but...did you take a look at the unilgic examples? also..did you take a look at the youtube videos that explain how to configure and use the differents functions?
  15. hi vken, from your picture I saw that the function 1 (maybe is the main function) has no BIT trigger to do the conversion from 2xint16 and REAL...also to perform the byte swapping...so this funciton will called a many times (one for each PLC cycle)...please try to insert a BIT command to perform these actions. regards
  16. Just to know...are you trying to read info starting from address 1 or address 0? because the column called "Modbus Protocol Start Address Hex" show that you have to start from address 0x0000...then 0x0000 and 0x0001 will contain the info about the "Phase 1 line to neutral volts"; address 0x0002 and 0x0003 will contain ythe info of "Phase 2 line to neutral volts"...and so on
  17. ...I took the first exampke that I found searching "pythin async modbus client" without any checks...😀
  18. hi damiankk, in my opinion with 100 variables you can use the modbus way...what you have to be sure is that at the PC side the python scrip has to use an asynchronous method. I am not so deeply inside python but I found THIS example about how to implement an async modbus_TCP_client.
  19. Hi Flex, customer asked for new features then I thought that can be the case to take a look at the new release. I am testing this in the PLC that I am using as emulator. At the start up of the program I upload/create 9 DTI as system configuration...then only when the "initialization" is completed I let the program run...with version 1.26 need very few time..with version 1.29, more or less, 30 seconds. Also, as I wrote, i found that not all .sig files was created...then I removed the "&" from the file name and the .sig was present.
  20. Hi All, I just update one of my project, that is working perfectly, from version 1.26.90 to 1.29.111...and I saw that the ladder function Store DTI to File need more time referred at the previously version...to be clear I let 1 as F parameters (all file type)...with version 1.26.90 I think that the storage of the file needed much less of 1 seconds for each DTI....with version 1.29.111 I think 4-5 seconds are needed! I tried to clean the SD...then all the files are generated by the same version...but is the same. I also saw that some .sig file are added...but if the file name has a special characters like "&" the .sig file creation fail and avery time that I tried to save the file the "SD store failure counter" increase....I removed the "&" and all works fine. what can be?
  21. hi Daniel_EWW, i think that the "problem" is that the DT_Index as FunctionIn variable is not able to define the type/lenght of sructure that it is referring (seems somthing like late binding)...then is not able to let you select the right local or global structure variable to store the "value".
  22. Hi Flex727, usually I also use "insert" and "remove" row in the DTI...and this "warning" is present, I think, from version 1.25.xx...also a warning when you use the "indirect modbus ID or Group ID" function was added...to remember that the FB has not to be the first element in the ladder but a small delay or a "enabling contact" is needed. However ...as I wrote...I usually use "insert" and "remove" command for table about 200-300 rows and I didn't have problem. As Kratmel wrote this can be a problem (watchdog) when the DTI include thousands of rows and you have to insert/remove row 0,1,2...
  23. hi, what is the aim of the "MODBUS SET SLAVE ID" module and how this must be configured? I don't found any description in the help file... thanks
  24. hi Saragani, so...I did some "test"...at the end if I open the unistream program and after recall my project, then close it, the USB seems always "free" and I can safetly remove this. If I open the project by a double click on the .ulrp file, then close the program, the USB still be busy but not all the times...let me say 7 out of 10. This happens in 2 different PC (one with W10 PRO and a second with W10 HOME). PS: in these 7/10 cases the only way to let the USB stick free is close by task manager the unistream notifier.
×
×
  • Create New...