Thanks for your reply,
Modbus ASCII, does have bidirectional access. If I change the I/O type type to "Read Holding S16", then I get another set of problems:
If I set the channel Timing to "0", then the knob cannot rotate.
If I set the channel Timing to "1", then when the knob is moved to a new position, it will oscillate back and
forth between the previous position and the new position. This osscilation will continue until I can hold the
knob in a new position for longer than the channel timing period, in this case 1 to 2 seconds.
So you can see why I abandoned using the bidirectional I/O types...
Back to my Initialization problem:
I changed the sequent tat is to Auto-start to have the following code:
read(DM_3_RD)
DM_3.AddValue(999) // marker for debug
DM_3.AddValue(DM_3_RD[0])
Page_0 now has NO componets. The knob component has been moved to Page_1. The knob component was set up with a range of 0 to 1023.
When I start DAQFactory and open my ".ctl" file this is the contents of the DM_3 (channel associated with knob component):
Row: Time: Value:
0 ...m39.760 509 <- this is value read from my PLC
1 ...m39.845 999 <- this is my marker
After I goto to Page_1 (has knob component), but before touching the knob, this is what I see in the DM_3
channel table:
Row: Time: Value:
0 ...m55.834 0 <- this is the value that your knob component wrote to my PLC
1 ...m39.760 509 <- this is value read from my PLC
2 ...m39.845 999 <- this is my marker
I see no evidence that the "knob component" is using the channel history for it's initialization. I changed the range on the knob to 10.5 to 1023 and found that the knob initialized to a value of 10.5. It is not possible to get a value of "10.5" from an integer register, so I conclude that the knob component made no attempt to access a register in my PLC, but rather defaulted to the minimum value of the component.
OK, so here's the questions, again:
Is it possible to initialize the Knob component to a starting value other than it's minimum value when working with a "write-only" channel?
Is it possible to associate the knob component with a virtual channel (bidirectional) and then redirect the channel writes to a "real" (physical) channel and if the component request a "read" to provide this information from another channel or data source?