Visual Slick Backup option

The Backup options tab can be found under tools->Configuration->File options, select Backup tab. You need to check “Make Backup files” to enable the backup option. Visual Slick will then make a backup of every file the first time used in a given edit session. With this option enabled you can select different backup directories options:

  • Global directory – Backup files are placed in a single directory (You can specify the directory)
  • Same directory as *.BAK – placed in same directory as backup file but their extension changed to “.bak”
  • Global nested directory – uses the directory and path name of destination file
  • Use child directory – placed in same directory as destination file

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

DNP3 Class Data

The DNP3 protocol is organized in data types or object group as well as class data. Some of the object groups are as follows:

  • Binary inputs
  • Binary outputs
  • Analog inputs
  • Analog outputs
  • Counters
  • Time and date
  • File transfer objects, etc.

Each object group can contain one or more data points. A data point is a single data value of a specific object group. Every object groups also contains data variations. These variations are there to indicate the different methods of specifying data within an object group. For example, the variation of analog input data allows for 16-bit signed integer values, 32-bit signed integer values or even 32-bit floating point values.

In the DNP3 protocol object groups and the data points within them are further organized into Class data. This provides a more efficient way of requesting data. Four classes are defined in DNP3. Class 0 represents all the static data of unchanged event data. Class 1, 2 and 3 on the other hand represent different priorities of change event data. This allows the user to poll more frequently for higher priority changed data more often without using a lot of bandwidth. This is because the class data response only returns the class data that changed since the last poll, keeping the response message small and efficient.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

FieldServer Modbus TCP - Device / Station Address (ID) 0 (Zero)

Many Modbus TCP clients send polls with the Station / Device address (ID) set to zero.

Fieldserver’s cannot be configured as station zero so they cannot respond. There is a work around. Set the FieldServer Node_ID parameter to a value of 239. When Modbus TCP messages are received, the FieldServer looks at the one byte station number. If it is zero it changes the byte to 239 and then passes the message for processing by the driver. Thus if the server node is configured as 239 the FieldServer can respond correctly.

One example of a Modbus Client that sends requests to station zero is the EZ Touch Panel HMI from EZAutomation.net

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

BACnet MSTP Installation, RS485 and Cables

BACnet MSTP uses RS485 (also known as EIA485) as it physical layer. This is good and bad.

Search the Internet on RS485 you will find Bob Perrins’s article called the “THE ART AND SCIENCE OF RS-485.” It is his reference to Art that makes RS485 bad. What he means is that RS485 is often non-trivial and getting a network working can rely more on experience and experimentation.

Here is our simplified advice:

1. RS485 is a 3 conductor network. You take a huge risk by not installing the 3rd conductor. You risk blowing 485 ports, you risk unstable operation (works sometimes and doesn’t work other times) and finally you risk re-installation. For a more detailed discussion read this article. The more power sources used to power devices, the greater the physical separation of devices, the less well grounded devices and power sources are the greater the risk. Remember this statement : The so called Ground Terminal on a RS485 interface is not a connection to ground. It is a common reference signal. The voltage level on the Tx/Rx conductors are measured relative to this voltage level.

You can (if you must) use a shield drain wire as the 3rd conductor (ground reference conductor)

2. Always connect the ground reference conductor first if you are connecting a device that is powered up or you are connecting your laptop an operating network.

OR

Always choose devices that have optical isolation - this almost always will protect the RS485 transmitter/receivers.

3. You can get away without the shield. The twisted pair used for Tx and Rx is more effective at noise cancellation than the shield.

4. Take care where you run your cables. It seems obvious not to wind your cable around other cables or sources of electricity/magnetism. People are often surprised to find that the worst source of induced noise are switching DC loads. Another big culprit are Variable Frequency drives.

5. Cable selection does make a difference.

All cables offer impedance (resistance). Some cables are designed so that the impedance is relatively independent of distance. You want one of these cables. A clue to knowing if you selected one is to look at the cable’s Nominal Impedance. If they quote a number such a 100Ohms you have a good cable. If they quote an impedance per meter/foot you have chosen the wrong kind. Wrong in the sense – to determine the value of terminating resistors now requires measurements and calculations. Choose low capacitance cables.

Can you use Cat5 cable ? Yes. Use one pair for Tx,Rx and a conductor from another pair for the ground reference signal.

We recommend these two cables.

Belden 3106A

Multi-Conductor - EIA Industrial RS-485 PLTC/CM
22 AWG stranded (7×30) tinned copper conductors, Datalene® insulation, twisted pairs, overall Beldfoil® shield (100% coverage) plus a tinned copper braid (90% coverage), drain wire, UV resistant PVC jacket.

Belden 3107A

Multi-Conductor - EIA Industrial RS-485 PLTC/CM
22 AWG stranded (7×30) tinned copper conductors, Datalene® insulation, twisted pairs, overall Beldfoil® shield (100% coverage) plus a tinned copper braid (90% coverage), drain wire, UV resistant PVC jacket.

6. How do you put more than 32 devices on a single RS485 trunk ?

The simple answer is use a repeater but in practice one isn’t always necessary.

The RS485 stardard is based on 32 devices. Since the standard was developed most RS485 chips present less than the full unit load originally specified. Today you get half and quarter load devices. Thus to see how many devices you can install you simply get the data sheets and add the loads. Look for “UL” on the data sheet. It stands for Unit Load.

7. Cable Lengths and Baud Rates

Practically speaking you can go up to 4000 feet at baud rates up to 76800 baud. Above that you need to do a little math and reduce the length. For example, at 115k baud your cable should not be much longer than 2500 feet.

However, the higher the baud rate the more sensitive the cable is to the quality of installation – issues like how much twisted pair is unwound at each termination start to become very very important.

Our advise: For longer networks with lots of devices, choose 38k400 baud over 76k800 baud and optimize using COV, separate networks and by setting the Max Master to a lower number.


Source: Ten Ways to Bulletproof RS-485 Interfaces National Semiconductor
Application Note 1057 John Goldie October 1996

8. How many devices to install on a single RS485 Trunk (Bandwidth Issues)

How many devices to install on a single RS485 Trunk (Bandwidth Issues)

There are non electrical considerations to determine how many devices you put on an MSTP network.

The chart below illustrates (from one installation) how little of the bandwidth is used to transfer data. The APDU’s are application layer message that poll and respond with property values – they do work for us as data consumers. The rest is used to maintain the network – passing the token around and looking for new devices.

It’s not possible to provide a calculator to work out how many devices to install on a single network but the following list provides some help in assessing bandwidth considerations.

  • How many of the devices will be BACnet slaves.

    Token passing and looking for new devices on the MSTP trunk consumes a fair amount of bandwidth.

    A BACnet slave can be read/written but never gets the token. So it can’t initiate any messages because it never gets the token. The more slaves the fewer token passes. Typically you are not able to put a device in slave mode. Most vendors implement their devices as masters (ie token passing devices).

  • How many Objects in each device are you interested in monitoring?

    The more you read and the greater the frequency the more bandwidth that will be consumed.

    It takes approx 30 bytes to poll for a single property. It takes about 40 bytes to reply. A token is 8 bytes as is a Poll for master.
    Assume that 50% of your bandwidth will be used by overhead (token, poll for master).
    Divide the baud rate by 10 to get bytes per seconds.
    Using a number like 30+40=70 as a best case and 100 as a worst case (obviously reading descriptions will take more) multiply by the number of objects and properties you are going to poll on a regular basis.

    Here are some typical numbers assuming the device doesn’t support the ‘multiple’ services (see below).

    Baud 38400
    Bytes per sec (divide Baud by 10) 3840
    Overhead use (token and poll for master) 50%
    Byte per sec for payload (a) 1920
    Typical Poll and response for a single property (b) 70
    Number of properties that can be polled per sec (=a/b) 27.42857
    Typical number of props that will polled per object 4
    (pres value, status_flags, reliability, out of service)
    Number of objects per sec 6.857143
  • How many properties from each of these objects?
  • What is the baud rate?
  • What is Max Master Set to?

    Every few cycles each (master) token passing device on the network must look to see if there are new devices. Max Master determines the biggest address that must be searched for. Each search involves sending a message and waiting for a response or a timeout (if the devices isn’t there). Timeouts cost time. The higher the number of Max Master (default is 127) the more potential devices must be searched for. If you use Max master to improve bandwidth then you must adjust it in each device.

  • Do the devices support the “Read/Write Property Multiple” services or must each property be read in a separate message.

    Find the answer to this question by reading the BIBs statement for each device or you could explore the device object of the device, find the property called BACnetServicesSupported and then look at the 14th item in the array to see if Read Property Multiple is supported and the 16th for Write Property Multiple. However, we have found that a large number of devices don’t display this information.

    Obviously, if you can read a chunk of properties in one message you will be better off than if you can only read a single one.

  • Can you use BACNet’s COV mechanism.

    COV stands for Change of Value. When a device supports COV another device / application can subscribe to receive notifications when an object property changes. This means the data client doesn’t have to poll for data continuously but can wait passively to be notified of the change. This reduces the number of messages on a network dramatically.

  • Some devices are slower than others.

    BACnet allows up to 15 msec for a device to use the token. Since most messages on a MSTP network are token passes a device that uses the token in 5 msec will consume much less bandwidth than one that takes 15msec. (A number of vendors relax this requirement to allow for other vendors implementations. The more relaxed the more bandwidth is consumed doing nothing.)

9. What can go wrong with 485 ?

Lets say you adopted all the best practices for installation of the network but you get intermittent or unacceptable performance because of packet loss, noise, collisions … Then you should consider hiring an expert to resolve your problems because now you are in the ‘Art’ part of RS485. These are some of the things they will look at.

  • Reflections

    Without a scope and expertise you wont know this is a factor. Its easy and cheap to eliminate. Look at the cable spec. Find the nominal impedance. Buy two resistors of the same value. At each end of the trunk install the resistors between the Tx and Rx terminals. If you don’t have obvious ends of the trunk (because you created a star) then we recommend re-cabling to form a linear trunk or we wish you luck.

    Some devices have terminating resistors built into them. If the vendor did a poor job, the default is to have the resistor active and they must be disabled unless they are the terminating devices on the network. Read vendor docs.

  • Biasing, Idle State Biasing, Fail Safe Biasing, Anti Aliasing

    There are a whole string of terms uses as synonyms to describe this phenomenon.

    To use two wires ( as opposed to full duplex 4 wire) for RS485 each devices transmitter and receiver must be set to an idle state to release the line for others use. Releasing the line means allowing it to ‘float’. It must not be allowed to float at any voltage level so devices have pull up/down resistors to pull the line to an allowable ‘floating’ voltage. (the floating state is also known as the tri-state. ) The load presented by other devices on the network affects this floating so the resistor values may need to be changed depending on the number of devices installed and the values of the pull up/down resistors they are using. (You can imagine how tricky its going to be to resolve this). If a device floats out of the specified range then to other devices it will look like the floating devices isn’t floating at all. The other devices will think that it is transmitting or receiving and thus blocking the line.

    The simplest way of knowing if this is a factor – Does the device work properly when it is the only device on the network ?. When you install it in the full network other devices or this device stops working properly. This device and/or the pull up/down resistors of other devices are candidates for investigation.

    A number of vendors have a range of pull up/down resistors installed and allow you to change the selection using software or jumpers.

  • Line Drive On / Off

    To use two wires for RS485 each devices transmitter and receiver must be set to an idle state to release the line for others use. When a device wants to send it must grab the line. When it has finished sending it must release the line. You can see there are potential problems here. What happens if one device waits too long after sending its last bit before releasing the line – its possible that the other devices will miss some bits of data.

10. Take care with the topology. The best topology is a single trunk that in-outs on the terminal blocks of each device it connects. What do we mean by best ? We mean the choice which is least likely to cause problems.

Best arrangement. (Showing TX conductor for reference only)

Getting worse. Making the connections to the RS485 terminals, drops instead of connections starts to give the electrical signals all kinds of complicated paths for reflections and harmonics. Its obvious that if the drops are long and are not twisted then you also have more chance to induce noise. (Showing TX conductor for reference only)

Worst. Avoid Star configurations. They are so much harder to debug when it gets tricky. (Showing TX conductor for reference only)

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Google AdWords Keyword Macros

The Keyword macros allows you to display the user’s exact search phrase in the ad text of your Google AdWords ads. It is best practice to include the keyword macro in the headline of your text ad. The reason for this is because the headline of your text ad is the clickable portion. Google AdWords also bold prints the relevant ad text to the users search query, thus making your heading bold printed as well. The user is mush more likely to click on your ad because it stands out from the rest and it is 100% relevant to his search query.

The format of the keyword macro is as follows:

{keyword:alternative headline}

Or

{KeyWord:alternative headline}

The first format will display the user exact phrase as typed in by the user. In the second format you will notice that the first and fourth character of keyword has been capitalized. This format will also display the user’s exact phrase but with every first letter of every single word capitalized. This makes your ad stand out even more. The reason for the alternative headline is because of the ad headline characters limit of 25. If the user search phrase is bigger that 25 characters the alternative headline will be displayed automatically by Google AdWords.

The main purpose of the keyword macro is to drive your CTR rating up. This is usually a shortcut way for a new user to obtain a high CTR. The CTR is an historical figure so the higher you’re CTR in the beginning the longer your CTR average stays high. This will give you the advantage of paying less for a higher ad ranking position on the Google search pages.

One of the downsides to using the keyword macro is that if the user misspells a word it will appear just like that in your headline. In other cases your ad may look relevant to irrelevant users, because of your dynamic headline. This may loose you some money in the beginning but will drive your CTR up. The keyword macros are usually only used for a sort term in the beginning of your ad campaign to get you CTR up.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Preparing to Optimize a Google AdWords Campaign

In order to make intelligent optimization changes it is first necessary to understand the business that is being advertised and the goals of their AdWords campaign. You can start by reviewing the advertiser’s home page even if it is not one of the landing pages. Navigate his home page and try to go through the same motions a user would, when visiting the site. The about us link is usually a good place to start learning the new business. There after you should also review the products and services.

In addition to browsing your advertiser’s web site it is also a good idea to browse competitor’s web sites and ads. This will help you to gain insight into the differences and similarities the advertiser has with the services and products of his competitors. You will also be able to identify factors that make the advertisers business more compelling that his competition. These factors can then be highlighted in his AdWords ads.

After reviewing the advertiser’s and competitors web sites you can start reviewing his existing AdWords campaigns and ad groups. Review the performance of individual keywords and text ads. Now make a list of what is working and what isn’t. Do not dismiss the poorly performing keywords jet. By optimize their ad text, campaign targeting and keyword match types you may still improve the performance of these keywords significantly. Inactive keywords can also be reactivated by increasing their minimum bid. You might even be able to improve the performance of existing well performing keywords.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Google AdWords Ad diagnostic tool

The ad diagnostic tool can help you to diagnose the reasons why your ad may not be appearing for a given keyword or on a specific search result page. This tool can also test if your ad appears on the first page of search results or why a particular ad group of ads may not be showing.

The ads diagnostic tool is available at several locations within you account. You can access information regarding your keywords by hovering over the magnifying glass for a specific keyword in your ad group. The Information presented by the magnifying glass will tell you if your keyword is triggering ads or not and the reasons way it may not trigger ads. If the keyword does not show any ads there will be a link “what can I do?”. This link will take you to more detailed instructions on how you can fix the problem so that your keyword will start triggering ads.

You can also access the tool under the tools link in your campaign management tap. The ads diagnostic tool is located in the right hand corner under the heading “Analyze Your Ad Performance”. Option one of the ad diagnostic tool allows you to search for specific keywords and terms to see if they trigger ads. On the results page the tool will show you if the keyword or term triggers ads and in witch ad group they can be found. The tool also allows you to preview the Google search result page to see where your ad will appears.

The second option for the ad diagnostic tool is to enter a search result page URL. This option is useful when you are concerned about your ad’s appearance on a particular search result page.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Hilscher’s dual-port memory message interface

The message that needs to be transmitted is a data structure containing instructions from the transmitter to the receiver. The message structure can be divided into three parts, message header (8 bytes), telegram header (8 bytes) and user data (247 bytes). These messages are used to transmit data from one task to another. For all protocol tasks the structure stays the same, but some applications uses the messages for parameter passing and these messages don’t have a telegram header but begins immediately with the data.

The two type of messages used are request messages and confirmation messages. The request message causes an action in a task and the confirmation message confirms the performing of that action or task (answer).

For the transmitter to send the message it needs to write it into the receiver’s mailbox and notify the receiver by inverting one of its mailbox bits. The receiver then reads the mail and releases the mailbox in response to the corresponding mail. Only one mailbox is used in each direction. The receiver of the message is thus responsible to quickly read the message in order to release the mailbox again for the next available message.

The messages that cannot immediately be transferred to the Host application are placed in a queue mechanism with a standard configuration of 31 available segments. The actual available segments can be read from the SegmentCount location inside the dual-port memory. If the available number of segments fall bellow a protocol dependent value, the device won’t be able to access messages from its mailbox. The Host application is thus responsible to read out its mailbox messages to ensure that no Host messages are in the queue witch will reduces the available segment count.

Synchronization of message delivery:

The procedure chosen for message synchronization allows the Host to operate in interrupt mode as well as polling mode. The device can cause an interrupt to the Host application by writing into the interrupt capable handshake cell. The hardware has only one interrupt line for each handshake register, indicating different events. The event can be identified by reading the corresponding handshake register in the dual-port memory. The two reserved handshake registers in the duel-port memory are the DevFlags and HostFlags registers. The DevFlags register can only be written to by the Host application and read from by the device. The HostFlags register on the other hand can only be written to by the device and read from by the Host application.

Both these registers contain a command and acknowledgement bit. A command gets activated when the command and acknowledgement bit has opposite values and acknowledged when they have the same value. It is important to note that a new command can only be activated if the preceding command was acknowledged.

In polling mode the Host application monitors the difference between the command and acknowledgement flag bits. The Host application will then be able to send messages or received messages depending on the status of these bits.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

PROFIBUS The Field Bus Communication Standard

PROFIBUS is the abbreviation for Process Field Bus and is the standard for field bus communication in automation technology. The PROFIBUS communication protocol was created in 1989 by a consortium of companies and institutions and promoted by the BMBF (german department of education and research). PROFIBUS has since become the most popular fieldbus in discreet manufacturing and process control with over 20 million installed devices world wide.

PROFIBUS is divided into two variations, the more commonly used DP (Decentralized Peripheral) version that replaced the first complex communication protocol version FMS (Fieldbus Message Specification) in 1993 and the less commonly used PA (Process Automation) protocol version.

PROFIBUS DP is the high speed solution of PROFIBUS. It has been designed and optimized especially for communication between automation systems and decentralized devices. It can operate at data rates of up to 12Mbit/s over twisted pair cables or fiber optic links. The communication is via cyclic data traffic exclusively and each field device need to exchange its data with the control device (Master) within a given cycle time. Operation and monitoring tasks for a visualization device separate from the control device was not supported by this specification and appropriate function extensions were defined in 1997. The new extended version is referred to as PROVIBUS-DPV1 and is compatible with all earlier versions of the existing DP protocol. PROVIBUS-DPV1 also offers in addition to the cyclic DP communication services, an acyclic service for alarm messages, diagnostics and control of field devices.

PROFIBUS AP is used to monitor measuring equipment via a process control system. It also meets the two special requirements of process automation, an intrinsically safe transmission technique and field device power over bus cable. The disadvantage of this protocol is its slow data rate of only 31.25kbit/s. Weak current flow through the bus lines makes it intrinsically safe and ideal for use in explosion-hazardous areas.

The FROFIBUS protocol (OSI reference model)

OSI-Layer

PROFIBUS

User Interface

DPV0

DPV1

DPV2

7

Application

6

Presentation

5

Session

4

Transport

3

Network

2

Data Link

FDL

1

Physical

EIA-485

Optical

MBP

User Interface:

For the User Interface of PROFIBUS various service levels were defined for the DP protocol:

· DP-V0 provides the service for cyclic exchange of data and diagnosis.

· DP-V1 provides the service for acyclic and cyclic exchange and alarm handling.

· DP-V2 provides the service for isochronous mode data exchange broadcast (slave-to-slave communication).

Data Link layer:

The Field Bus Data Link Layer (FDL) work with a hybrid bus access protocol. It combines token passing with a master slave method. The token passing procedure guarantees that the bus access gets assigned to a specific master node for a defined time frame. In this time frame the master node can access the bus and request data from any master or slave device. After the time frame expires the current master node will pass the token to the next master node on the bus. This layer also includes the handling of data security and the transmission protocol of telegrams.

Physical layer or bit-transmission layer:

Three different methods are specified for the physical layer of FROFIBUS

· Electrical wire transmission EIA-485, twisted wire pair with impedance of 150 ohms. Specified for Bit rates 9.6 kbit/s to 12Mbit/s. This transmission method is usually used with PROFIBUS DP. The cable length between repeaters is limited from 100 to 1200 m, depending on the bit rate.

· Fiber optical transmission uses, star-, bus- and ring topologies and the distance between repeaters can be up to 15 km.

· With Manchester Bus Powered transmission technology the data and device power are fed through the same cable. The bit rate is a fixed 31.25 kbit/s. This technology was specifically developed for PROFIBUS PA.

Other transmission mediums products like radio waves, sliding contacts etc. can be obtained from various manufacturers but this does not mean they conform to any standards.

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

Hilscher’s Dual Port Memory Interface Card

The main objective of the dual-port memory interface of the Hilscher data card is to be able to handle different devices with different protocols on a single hardware platform. Depending on the installed device and protocol there are two different data transfer possibilities between the Host (PC application) and device (communication interface or module) they are:

Message oriented: consists of two mailboxes for sending and receiving commands and telegrams of acyclic information.

Process image: consists of direct access to the input and output data coming from and going to the peripheral device.

The message oriented data transfer is available for all device types. This allows diagnostic programs and tools to communicate with the real time operating system to get status or firmware information.

The process image on the other hand is not available for all device implementations. If it’s available the dual port memory is enlarged to 2 or even 8 KByte. The process image memory area is placed below the message interface area’s bytes.

The control bits used for synchronization of data and message handling are contained in the last two bytes of the dual port memory.

Message orientated data Communication:

The unique data structure of a message consists of an 8 byte header, an optional 8 byte telegram header and a maximum of 247 bytes of user data. The message header structure is fixed and constant and is used by the devise operating system for transport and message addressing. The telegram header defines the actions that need to be taken by the protocol task if necessary. The user data contains the send and receive portion of data. This message structure gets defined within the RCS_USER.H file.

If the Host application wants to send a message it will load the message data into the sent mailbox portion of the dual-port memory and set one of the device flags. The device will then take the message and place it in an output message buffer queue for processing and set a host acknowledgment flag. The message will then get processed and sent out by the device on a first come first serve principle. If the device on the other hand will place a received message in the incoming message buffer queue for processing. If the message gets to the front of the queue the device paces it into the message mailbox portion of the dual-port memory and sets a host flag. The Host will then process the incoming message and set a device acknowledgment flag. This is the sequence of events for every sent and received message.

The process Image IO Communication:

For certain device implementations there are a process image available in the dual-port memory. The access of the process image is the same for master and slave devises. Several handshake modes can be selected by the host user application, the user also has the option to read and write without any synchronization or handshaking.

The available handshake modes:

  • Direct data transfer, Device controlled: Typically for slave system where data transfer must be guaranteed for every master cycle.
  • Buffered Data Transfer, Device controlled: Typically for slave system where the device gets an interrupt with every data exchange cycle.
  • Uncontrolled direct data transfer: Typically for testing some IO devices with a simple application that requires no handshaking.
  • Host controlled, Buffered data transfer: Typically for master and slave systems that need guaranteed consistence of the complete process image.
  • Host controlled, direct data transfer: Typically for master system with a synchronous IO device.
  • Extended Host controlled, Buffered data transfer
Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have