For soft records, it can be a constant, a database link, or a channel access link. If the link is a constant, the result is no output. Each record type has its own set of device support routines. If a record type does not have any associated device support, DTYP is meaningless. VAL This is the desired value before any conversions to raw output have been performed. If a record type needs to make adjustments, OVAL is used to enforce the maximum rate of change limit before converting the desired value to a raw value.

Author:Shaktigal Dairg
Language:English (Spanish)
Published (Last):7 January 2007
PDF File Size:19.1 Mb
ePub File Size:3.50 Mb
Price:Free* [*Free Regsitration Required]

Otherwise, if the client and server are intended to be on the same IP subnet, then the problem may be that the IP netmask is incorrectly set in the network interface configuration. If the host has a modern IP kernel it is possible to have two or more servers share the same UDP port. It is not possible for these servers to run on the same host using the same TCP port. If the CA server library detects that a server is attempting to start on the same port as an existing CA server then both servers will use the same UDP port, and the 2nd server will be allocated an ephemeral TCP port.

Clients can be configured to use the same port number for both servers. Therefore, if the client library is from before version R3. The disconnected channels remain attached to the beleaguered circuit and no attempt is made to search for, or to reestablish, a new circuit. If, at some time in the future, the circuit becomes responsive again, then the attached channels enter a connected state again and reconnect callback handlers are called.

Any monitor subscriptions that received an update message while the channel was disconnected are also refreshed. If at any time the library receives an indication from the operating system that a beleaguered circuit has shutdown or was disconnected then the library will immediately reattempt to find servers for each channel and connect circuits to them. Nevertheless, there are opportunities for users to become confused during control system development, but it is felt that the robustness improvements justify isolated confusion during the system integration and checkout activities where the above scenarios are most likely to occur.

Contrast the above behavior with the CA client library behavior of releases prior to R3. Any attached channels were immediately searched for, and after successful search responses arrived then attempts were made to build a new circuit. An IP kernel mbuf starvation situation may lead to temporary IP communications stalls or reduced throughput. This issue has to date been primarily associated with vxWorks systems where mbuf starvation on earlier vxWorks versions is rumored to lead to permanent IP communications stalls which are resolved only by a system reboot.

IP kernels that use mbufs frequently allow the initial and maximum number of mbufs to be configured. Contributing Circumstances The total number of connected clients is high. Each active socket requires dedicated mbufs for protocol control blocks, and for any data that might be pending in the operating system for transmission to Channel Access or to the network at a given instant. If you increase the vxWorks limit on the maximum number of file descriptors then it may also be necessary to increase the size of the mbuf pool.

This ties up a per socket quota of mbufs for data that are pending transmission to the client via the network. The server does not get a chance to run because some other higher priority thread is running and the CA clients are sending a high volume of data over TCP or UDP. The server has multiple stale connections. Stale connections occur when a client is abruptly turned off or disconnected from the network, and an internal "keepalive" timer has not yet expired for the virtual circuit in the operating system, and therefore mbufs may be dedicated to unused virtual circuits.

This situation is made worse if there are active monitor subscriptions associated with stale connections which will rapidly increase the number of dedicated mbufs to the quota available for each circuit. When sites switch to the vxWorks 5. Also, at certain sites problems related to vxWorks network driver pool exhaustion have also been reported this can also result in ENOBUF diagnostic messages.

The vxWorks command "inetstatShow" indicates how many bytes are pending in mbufs and indirectly based on the number of circuits listed how many mbuf based protocol control blocks have been consumed.

The RTEMS command "netstat [interest level]" displays network information including mbuf consumption statistics. This is a law of nature — based on queuing theory of course. What is done depends on the version of the CA server.

All server versions place quotas on the maximum number of subscription updates allowed on the subscription update queue at any given time. If this limit is reached, an intervening update is discarded in favor of a more recent update. Depending on the version of the server, rapidly updating subscriptions are or are not allowed to cannibalize the quotas of slow updating subscriptions in limited ways. Nevertheless, there is always room on the queue for at least one update for each subscription.

This guarantees that the most recent update is always sent. Adding further complication, the CA client library also implements a primitive type of flow control. In that situation it sends a message telling the server to temporarily stop sending subscription update messages. When the client catches up it sends another message asking the server to resume with subscription updates.

This prevents slow clients from getting time warped, but also guarantees that intervening events are discarded until the slow client catches up. A message of this type used to exist many years ago, but it was a source of confusion and what we will call message noise so it was removed. There is unfortunately no field in the protocol allowing the server to indicate that an intervening subscription update was discarded.

We should probably add that capability in a future version. Such a feature would, for example, be beneficial when tuning an archiver installation. Unsuccessful status codes returned from the client library are listed with each routine in this manual.

Operations that appear to be valid to the client can still fail in the server. Writing the string "off" to a floating point field is an example of this type of error. Below are several methods to test CA function returns. Arguments of type chtype specifying the data type you wish to transfer. There are data types for all of the C primitive types, and there are also compound C structure types that include various process variable properties such as units, limits, time stamp, or alarm status.

The following tables provides more details on the structure of the CA data type space.


RRM 3-14 Common

Meztikree The Calc record has the standard fields for specifying under what circumstances the record will be processed. The Reverse Polish expression is evaluated more efficiently during run-time than an infix expression. The Mnaual field contains the infix expression which the record routine will use when it processes the record. The resulting value is placed in the VAL field and can be accessed from there. They are used to process the record. A routine postfix is called to convert the infix expression in CALC to reverse polish notation. These values retrieved from the input links are stored in the A-L fields.


EPICS R3.14 Channel Access Reference Manual




Related Articles