Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - antsrealm

Pages: [1]
1
Support Questions / Re: Build problem and basicbutton copy and paste
« on: September 05, 2013, 06:18:13 PM »
Something else I notice with the buttons is that when the form is first opened and all these bits are already high the buttons are taking a half second to realize they are high and then highlight.



**EDIT** Seems like it some how remembers the last state, so if I stop and start the application if the bit hasn't changed state from when it was last seen it loads in the correct state. If it has changed since the last time it was run then it flicks over. That is ok but it would be nice if I could make the form load with the button already in the correct state and not flick over.

2
Support Questions / Re: Build problem and basicbutton copy and paste
« on: September 05, 2013, 06:04:36 PM »
Thanks for the feedback.

I added the code and at first it seemed not to work for the BOOL tag but it is working now, so I'll call that fixed.

I tried it with the DINT tag and that works the opposite way it wont write the toggle to the address but will show the state change by showing the highlight colour and the alternate text when I manually set the bit high in RSlogix 5000.



3
Support Questions / Re: Build problem and basicbutton copy and paste
« on: September 05, 2013, 08:49:59 AM »
Yeah V3.5.8

It did work well with the first button, then after I copied and pasted it and changed the tags on the pasted one it went funny. They both operate the correct tag, they are just changing the highlight property on on the other button despite having the correct tag assignments. It's like something behind the scenes has the property assignments crossed after the copy and paste for the PLC addressing of the buttons.

And why can't I just change something and hit play I seem to have to rebuild the project every time to make the changes stick. I might try re-downloading and starting with a fresh copy.

4
Support Questions / Re: Build problem and basicbutton copy and paste
« on: September 05, 2013, 07:19:51 AM »


CONTROL_BITS[1]     >>  For one Button
CONTROL_BITS[2]     >>  For other Button

They are a BOOL array

5
Support Questions / Build problem and basicbutton copy and paste
« on: September 05, 2013, 04:26:02 AM »
Archie,

This is probably something I'm doing but here is my problem.

I am using v3.5.8 and noticed a few things out of place. First of all with this version for some reason when I change something in the designer and then run it, it usually wont show up the changes unless I right click on the project in the solution explorer and click 'rebuild'. Then when I run it I see the changes.

The second issue and the more serious one was I created a basic button with the plcaddressclick, plcaddresshighlight and plcaddressselecttextalternate all set to the same address. At first this seemed to work fine with the button changing colour and text as it toggled the boolean tag on and off. However I copied the button and pasted another and changed the tag for the new button and found that when I clicked the new button it toggled the new address but changed the state of the other button that it was copied from despite having different addesses???????

Both buttons are looking at different tags for those three properties yet they seem to be affecting each other. Any ideas why I'm having these issues ?

Thanks.

6
Ok, well I just purchased one of everything on your site and that totals something like $10 so I still want to donate more as this has saved me a lot of $$$. I'll keep an eye out for the extra support option when you add it.

If you enable the donate option again let me know as I want to support this project.

Thanks,
Anthony.

7
Yeah that would be an acceptable method. I was just playing with your basic button and basic label... they work really well I copied and pasted a basic label with the same address 100 times and it was fairly quick and then I used a basic button that is monitoring the state of a BOOL to change the highlight colour. One of the problems I ran into with my manually coded version was that it would start at form load in say the off position and then it would take a sec to read the plc then it would snap over to the on position and you would see this 1 sec delay when opening a new form before the buttons and labels showed the correct data. However your basic button is flawless no matter the state in the PLC it opens in the correct state when the form opens. I like what I see.

Do you have an account I can send a donation to... I want to make a donation of $200 AUD as a gesture of thanks for putting in the effort to produce this and then for supporting it so well.

Thanks
Anthony.

8
OK interesting. Yes I did experience the UI lock up as you described and I got around that by using visual basics background worker which put all the read commands into another thread and that gave me a nice smooth UI. I just created a new project using a L32E processor I have at home and read in quite a lot of integers and timer values and it preforms a lot better the V326 but still has that feeling of being bogged down a bit.

As you said the sum of the read times in this synchronous mode is just to long, I had a quick play with the data subscriber earlier today but I will possibly require some documentation on how to use that properly for multiple addresses (I had it working for one address). From what I briefly read about how other PLC / vb apps do it is by reading in all data, or at least as much as data as possible in one transaction as a block and then processing the data down to the bit level in VB. I don't mind putting the time in up front to get a nice smooth UI that isn't restricted to a certain number of tags.

I guess going forward will be to try the DataSubscriber in more depth. Was there some documentation for that ?

Thanks,
Anthony.

9
Async mode was set to false. I had ayncmode = true commented out, I think I tried it without much luck at some stage.

10
Ok, well say I have to read in 50 different timer preset and acc values, 50 different integer values and 50 different boolean values. Do you think it should be possible to read all of that every half second and see timer acc values (to the second) updating on the screen without missing a beat ??

I'm going to play with V358 in the mean time but I wont be finished with that until this time tomorrow I'd say.

Ultimately I'd like to fill a database like table and then just use that to populate all the HMI objects.

Thanks Archie.

11
I was using V326 as I was getting the best results with that version at the time of starting....

Here is a small section of code as an example. Basically I check if this tab is showing and then only read the registers that display on this tab as I could not read all the data for all the tabs at once because it would slow down to much. I have about 8 tabs on this screen that contains pretty much the same amount of data on each tab. It's putting the data in public arrays that are accessible from the other form. If I attempt to read much more then this it begins to slow down to much that every now and then it would skip a second increment when monitoring a timer.

Code: [Select]
If BotVacTabOpen = True Then
            BOT_VAC_DELAY_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.TIMERS[0].PRE") 'READ BOTTOM MAIN VAC TIMER PRESET
            BOT_VAC_DELAY_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.TIMERS[0].ACC") 'READ BOTTOM MAIN VAC TIMER ACTUAL
            BOT_VAC_DURATION_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.TIMERS[1].PRE") 'READ BOTTOM MAIN VAC TIMER PRESET
            BOT_VAC_DURATION_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.TIMERS[1].ACC") 'READ BOTTOM MAIN VAC TIMER ACTUAL
            BOT_VAC_INTEGERS = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.INTEGERS[0]", 2) 'READ BOTTOM MAIN VAC INTEGERS
            BOT_VAC_BOOLEANS = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOTTOM_MAIN_VAC.BOOLEANS[0]", 4) 'READ BOTTOM MAIN VAC BOOLEANS
HEAT_TIME_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[0].PRE") 'READ HEAT CYCEL TIME TIMER PRESET
        HEAT_TIME_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[0].ACC") 'READ HEAT CYCEL TIME TIMER ACTUAL
        FORM_TIME_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[1].PRE") 'READ FORM CYCLE TIME TIMER PRESET
        FORM_TIME_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[1].ACC") 'READ FORM CYCLE TIME TIMER ACTUAL
        SEC_CLOSE_DELAY_TIME_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[2].PRE") 'READ 2ND CLOSE DELAY TIMER PRESET
        SEC_CLOSE_DELAY_TIME_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[2].ACC") 'READ 2ND CLOSE DELAY TIMER ACTUAL
        FIRST_OPEN_DELAY_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[3].PRE") 'READ 1ST OPEN DELAY TIMER PRESET
        FIRST_OPEN_DELAY_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[3].ACC") 'READ 1ST OPEN DELAY TIMER ACTUAL
        MOULD_OPEN_DELAY_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[4].PRE") 'READ MOULD OPEN DELAY TIMER PRESET
        MOULD_OPEN_DELAY_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[4].ACC") 'READ MOULD OPEN DELAY TIMER ACTUAL
        COOLING_DELAY_PRE = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[5].PRE") 'READ COOLING DELAY TIMER PRESET
        COOLING_DELAY_ACT = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.SIDEBAR_TIMERS[5].ACC") 'READ COOLING DELAY TIMER ACTUAL

        SEQ_BOOLEANS = EthernetIPforCLXComm1.ReadAny("HMI.SEQUENCES.BOOLEANS[0]", 11) 'READ TOP SEQUENCE ADJUST BOOLEANS
         
        End If

I downloaded V358 just before and am trying to recreate this problem in that version with a clean project and I'll attach the whole project if I have the same problem.

12
Basically I have a hidden form that is trying to act as the communicator that reads/ polls all PLC data and puts it into a database for the rest of the application to use. I have seen older programs doing this with visual basic 6 from years ago and want to achieve the same result here.

13
Archie,

First of all, love the new site !!!

Second of all love the product and where this is heading !!

Thirdly, I have just completed my first deployment of this software in an industrial touch panel for one of my customers and I couldn't be happier with the result! And I have used similar products that have costed $900 USD just for the comms driver!!

Now onto the only thing that's bugging me and hopefully how to fix this up....

I don't use any of the inbuilt controls so I read all the relevant plc info using a timer every 250ms and load it into public arrays and then use that data throughout my application.

The problem is the more I read the slower it gets and if I'm reading a few timer values and a few integers and some boolean tags next thing I know I can't update them quick enough to see seconds counting smoothly.

I think I know what I need... I need to read as much data as possible in one communication exchange like a block read or something similar then I can disassemble that into a table or arrays for use in my hmi.

If you or someone who knows how to resolve this could make some suggestions that would make this project 100% for me. At the moment I have to read only the data for the current screen to try and keep it preforming well enough. Except I have one screen with a lot of integer values that are monitored and that is just to slow. I would much prefer to be able to poll all the data I need for the entire HMI every 500ms or less and then just have it in the arrays. I have lots of little issues with reading only what's on the screen such as when I change screens it takes a second to update the screen and just isn't quite good enough for me.

Thanks again and I have a donation headed your way shortly as promised.
Thanks
Anthony.

Pages: [1]