Jump to content

wasikhetmaar

Members
  • Posts

    11
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by wasikhetmaar

  1. Hello, I'm working with two different machines, one machine contains a DTI with a name (string) as key value and a few numbers (int). The other works with data that it gets from the first machine. To select a row from the DTI, I would like to view the name of each row of the DTI on the second machine. To do so I will need to send all the names in order to the second machine. How can I achieve this? I communicate through modbus, but strings doesn't seem possible to send, so any other suggestions? in short: How do I send a DTI with one row of Strings (or an array with strings) to another machine?
  2. In other words, how do you make a loop with strings. You can increment each time and thereby read from the next row in your DT. But if you want to save it in a string how do you increment your string?--> how do you get another string each time you go through your loop.
  3. Hello, When you export a data table to excel with only columns of type string-ascii, you can't import it anymore. I tried to export and import directly without opening the file, but it wouldn't do so. Adding a bit or int column solves the problem, but i'm working with a data table that contains only a single string column.
  4. BEGIN_RUNG register int RLO1, RLO2; /* BusBar Inited RLOs */ RLO1 = RLO2 = RLO; /* BusBar */ BEGIN_BLOCK /* 1. Direct Contact */ ACC_AND(RLO1, _op_op9F23C19D); /* 2. Set Coil */ SET(RLO1, _op_op08576FC6[12]); /* 3. Reset Coil */ RESET(RLO1, _op_op9F23C19D); END_BLOCK BEGIN_BLOCK /* 4. Find in Array */ FIND_IN_ARRAY(RLO2, _op_op08576FC6, 20, 0, 1, _op_op7DDFD44C); /* 5. Store */ _ERROR_IN_ELEMENT(Error in Element ID = 855f5872-dd58-4b3c-83cb-9ceac16033c3, Message = Error during operand compile ) END_BLOCK /* End Junction */ END_RUNG Can you see what I display here? Don't know another way to display. I just want to store a certain value in an array by entering not a number but an integer between the [ ] Maybe writing a UDFB could be the solution, but is it also possible for multiple arrays?
  5. Yes, however i don't understand the second sentence. I want to set the bit by using the index value. If you got an array bit[0..8] of all zero's and I do: set array[5] the result will be 000010000. after that set array[3] will create 001010000 I would like to do so with a integer. Then I could store the position of the bit that I would like to set in the integer and then set it by doing set array[integer].
  6. Hello UniGuru, I'm using the folowing tags: Array Bit[0..8] integer INT16 5 store integer set array[5] works, but when I use set array[integer] it fails.
  7. I have found the problem. I was loading pages at the same time. I guess it is very important to start each function with a direct contact and check if everything else is offline except for a listener. Now I load only the initial page and when resetting the refresh at the end of the page it works without a timer. After the refresh the pages is activated and thereby also the listener.
  8. Hello, I have an integer that contains the position of a bit in an array that I would to set to 1. Entering numbers in array for the position is possible, but entering my integer isn't. Unilogic says that the integer is longer then the array length. Is there a possibillity to limit my integer (I know that it isn't longer than my array)?
  9. Hello, I'm trying to compare a string to an empty string. When the string is NOT empty, a counter should increment. First I tried to do this with a not contact between the compare and the increment, this gave the problem that it kept incrementing. It didn't stopped after one runtime it kept going. Does someone know a better inverse method? One ugly solution that I have found is to increment before the compare and decrement if it is true. Does anyone have better options?
  10. Hello, I'm working with a HMI screen with as initial load and a listener. When the sreen is active, the listener is also active. When I enter the screen, the load should only be executed once. To do so I'm working with buttons that set the bit Initial_load_refresh. In the main now the direct contact with bit Initial_load_refresh is active and call function Initial_load is called. At the end of my Initial_load function I reset the bit Initial_load_refresh. The problem is that not every element that should be loaded by the function Initial_load is loaded. When i click three times on the pages everything is loaded. My own solution is to add a timer at the end of the function Initial_load which ends after a second, then resetting the Initial_load_refresh bit. This works, but does anyone know a better solution then putting at every initial_load function a timer?
  11. I'm working with getting names from a DT on the screen, and I got the folowing: read name from dt, row offset in string1 read name from dt, row offset +1 in string2 .... read name from dt, row offset +14 in string15 next page = offset + 15 reload. This way i can skip through the DT and show all values, but now I got a strung with 15 times almost the same code. The problem is that there isn't a array[string] with which it would be possible to make a loop. If there would be an array[string] then i could save at position [offset] and next time [offset +1], but now i need another name thereby I't isn't possible to make a loop. Any ideas?
×
×
  • Create New...