19.01.2013 Views

Citect for Windows Driver Specification DanBuss DNIP Driver

Citect for Windows Driver Specification DanBuss DNIP Driver

Citect for Windows Driver Specification DanBuss DNIP Driver

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.1 Cache<br />

<strong>Driver</strong> Design <strong>Specification</strong><br />

3. General <strong>Driver</strong> description<br />

This driver is of the ‘Front-End-Back-End’ type, and there<strong>for</strong>e has a cache list of variables that has<br />

been read by <strong>Citect</strong>. The driver automatically updates the variables in the cache list with the highest<br />

possible speed. If <strong>Citect</strong> has not re-read the value within 30 seconds (adjustable, default) then the<br />

cache element will be erased (another page is selected etc). The size of a cache element is minimum<br />

29 bytes, and maximum 243 bytes. This is allocated from the linear 32-bit memory space.<br />

The cache list limit depends on the system.<br />

3.2 Request Per<strong>for</strong>mance<br />

Due to the nature of the DANBUSS protocol, <strong>Citect</strong> blocked reads will almost always decrease<br />

per<strong>for</strong>mance. However, the driver will group all cache elements that belongs to the same device together<br />

at allocation time, and then automatic block read requests in the way that is required by<br />

DANBUSS. The internal blocking will request a maximum of 36 values at one time from one device.<br />

The medium time <strong>for</strong> such a request is about 1,0-1,2 seconds. If the variable is not set as ‘ScanList<br />

Request’ in DANBUSS.DBF, it will never be blocked. An exampel of such variables are texts, which<br />

can not be read by the DANBUSS blocked read function. Non-blocked reads has a medium request<br />

time of 0,4-0,9 seconds.<br />

This means that <strong>Citect</strong> indicates a very high channel usage, though the default is to handle 75 outstanding<br />

DCB’s at one time.<br />

3.3 Reads and Request Priority<br />

‘First time’ cache elements always gets the highest priority, and will be handled directly when the<br />

outstanding request is finished. This is true because the driver places all ‘first time’ cache elements<br />

that is created (caused by a DCB <strong>for</strong> a new variable) first in the request list <strong>for</strong> that device. The driver<br />

scans the cache list <strong>for</strong> ‘first time’ cache elements, and then requests upto 36 variables from the<br />

same device. In that request, maybe only the first 6 are ‘first time’. Next, it will check <strong>for</strong> the next<br />

device if there are any ‘first time’ cache elements and it will be treated in the same way. This is also<br />

true when a write request has been handled. The cache element that has the same address (variable)<br />

gets the highest priority. Write requests always has the highest priority.<br />

3.4 DANBUSS Per<strong>for</strong>mance<br />

The DANBUSS is a routing net protocol (though routing is not supported by the driver), which communicates<br />

with the maximum speed of 4800 bps. This means that it has a generally bad per<strong>for</strong>mance.<br />

When a user uses the DANSETT hand-held manouver device, that is to be connected directly to<br />

DANBUSS, it will significally decrease per<strong>for</strong>mance of the bus. To avoid that the DANSETT gets<br />

slow and packets are dropped, the driver will increase the delay between reads when only normal<br />

priority cache elements exists in the cache list (the high priority can only be achieved in two ways;<br />

first time reads, and directly following a write). Most of the time the driver only will scan <strong>for</strong> alarms,<br />

which always will get normal priority following their first read. The increment of the delay is made by<br />

multiplying the delay by a factor of 5 (default, may be changed). The default delay is 250 ms, and<br />

there<strong>for</strong>e the normal (idle) update interval will be 1,25 seconds.<br />

<strong>DanBuss</strong> <strong>DNIP</strong>.doc 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!