Jump to content

Saragani

Members
  • Posts

    1,196
  • Joined

  • Last visited

  • Days Won

    116

Everything posted by Saragani

  1. No, if you want to change the start row, then you will need to change your PC software as well. Your PC software will read some MI, use it as a row number, change the values on the Data Tables on the PC (in the correct rows, not from row 0), and Write (or use Update command), and then increase the value of the MI by one by sending a command from the PC.
  2. This is a real-time system, so every variable must have a fixed position in RAM, meaning, the table must be predefined and must have a fixed or max size (else, if it keeps growing, then it will need to be reallocated). You can define the number of rows you want in teh project itself. The use an MI for pointing to the next free row. (So the MI will be 0 when the project is first downloaded to the PLC). Now, each time you want to write the rows to the table, then read the MI (for example, now it is 15), In your table, start writing to row 15 (instead of row 0), write the data to the table, and then increase the value of the MI to 16.
  3. I think that UniVision Licensing can help you create a program that runs on one PLC, but doesn't run on another (You will also need to add some kind of a support for it in the ladder).
  4. Off course you need to put the data in the table first... how else would the PC know what you want to write? Dim dt As Unitronics.DataTables.DataTables dt = New DataTables(plc, DataTablesReadOptions.StructureAndValues) ' You can also read just the structure. depending on your needs ' we are working with unitronics data tables, not the .net data tables. those are 2 different objects Dim table As Unitronics.DataTables.Table table = dt.Tables("verzenden") ' alter the data on the tables, for example: (zelf al wat extra velden toegevoegd!) table.Rows(0).Cells(2).Fields(0).Value = lblvoerbaknr.Text table.Rows(0).Cells(0).Fields(0).Value = lblVoerzend.Text table.Rows(0).Cells(1).Fields(0).Value = lblzendgewicht.Text table.Write()
  5. I'll report this issue to the HMI team. I also think it is a bug (The bit should be reset since the button is released).
  6. No, SaveToUDT saves the file as UDT (it won't save the file to other formats). You can use the Save function (rather than SaveToUDT) This function accepts a filename and file type (an enum), which can be either XML, FDT or UDT. (If UDT is chosen, then SaveToUDT is being called). As much as I remember, the PLC doesn't let you load an FDT file from the ladder (but rather than from the INFO), but in your case, you can save the file as FDT for later use (if you want to save the data, and load it few hours later and only then write it to PLC). If you intend to write the data immediately then table.Write looks like a good choice.
  7. In TeamViewer mobile, long mouse clicking is doing a right click.
  8. Hi, you are correct. Because the file was originally created from the PLC and might contain several tables, we don't allow creating a UDT file. You can save it as FDT (Use the Save function, which accepts path and file type). If you want to directly write to the PLC, then why do you use a file? You can do: table = dt.Tables("verzenden") table.Write(); (which will write the whole table back top the PLC).
  9. You can also write directly to the data table, without using the sd I will look into the code on the next working day
  10. Yes, you can setup an ftp server on the plc,which will have access to the sd card. Read the manuals, and if you can't figure it out, then contact support
  11. Hi, I see that you write a file to the SD. Are you loading that file afterwards by ladder from the SD Card into the Data Table?
  12. Your PLC doesn't seem to have a table called verzenden You need to download a matching project to the PLC which have the required Data Tables structure.
  13. I think that an inner exception is causing the problem. You can use the given source codes in order to debug the communication driver. My first guess is that when the driver is trying to extract the PLCs xml, the OS is preventing it. You can set the following then the program starts: PLCFactory.WorkWithXmlInternally = true; If the problem is the XML, then it should solve your problem.
  14. Solved how? Share your solution so others might benefit from it. Thanks.
  15. Here is the DLL .Net Communication Driver + DataTables DLL Any CPU.rar
  16. Hi, I'm using File.WriteAllBytes and as much as I remember, it creates the file. Please make sure that the directory exists. For example, you try to write c:\Temp\Test.udt, but c:\temp\ doesn't exist I think that it might throw an exceptino of path that doesn't exist.
  17. in the HMI. On the toolbox on the right side.
  18. Like an array. rows cannot be added or removed (They can be cleared). The total number of rows always remains pre-defined. You can search inside a data table, and the values can also be edited from the Data Table Widget.
  19. Thats looks like something you can do with a Data table. Just fill the correct data for each row, and when the operator enters a job number, read the correct row and use it. And since it is a data table, you can also save it to file, and load it (Or export the table to Excel, edit it and import the values back to UniLogic, or generate a data table file from the excel file and use it to load it from Ladder).
  20. Hi, the UniLogic arrays are 1 dimentional. However, you can use the Data Tables... I'm assuming that all the columns are from the same type, right? If so, create a Struct, with 1 member which is an array (of the type you want) with a dimension of 500. Then create a Data Table which is linked to that struct, and set the rows to be 10.
  21. Does it happen on any project, or are you trying to recover a project after Visilogic crashed? According to Microsoft, this problem can happen if a Bit field contains a blank value instead of 0 or 1: http://support2.microsoft.com/default.aspx?scid=kb;en-us;318882&Product=acc
  22. Remote Operator is for Vision PLCs, and it is not possible On UniStream you can view the PLC using VNC, and it is not possible to disable parts of the screen only on VNC, since VNC (like remote operator) shows the actual screen, and if an actual person clicks a button on the HMI, the VNC client will see it. (The HMI has only one client/user) You don't have this feature on any other remote control system (Like LogMeIn, TeamViewer, Remote Desktop, etc). You either have full control, or view only. You might, on the other hand, use Web Server and make web pages with roles (And since different clients can see different pages, then it is possible). Currently you will not be able to disable a button for specific user, but rather build a differet page for him (Our support has a very beautiful example of web server with roles).
  23. Hi, I wrote a little example. Look for the subroutine ExampleCode Voerkar.rar
  24. Ok, I've saw the project you've send me using dropbox. I'll look into it.
×
×
  • Create New...