Скачиваний:
8
Добавлен:
10.07.2023
Размер:
867.4 Кб
Скачать

plc serial - 27.9

To write to other serial ports the message function in Figure 27.7 must be used. In this example the message block will become active when A goes true. It will use the message parameters stored in message memory MG9:0. The parameters set indicate that the message is to Write data stored at N7:50, N7:51 and N7:52. This will write the ASCII string ABC to the serial port.

A

MSG

Control Block MG9:0

Memory Values:

Read/Write

Write

 

 

Data Table

N7:50

 

Size

3

setup stored

Local/Remote

Local

Remote Station

N/A

in MG9:0

Link ID

N/A

 

Remote Link type

N/A

 

Local Node Addr.

20

 

Processor Type

ASCII

 

Dest. Addr.

N/A

Data Stored in memory

N7:50

65

 

N7:51

66

 

N7:52

67

Figure 27.7 Message Function for Serial Communication

27.2.1.1 - ASCII Functions

ASCII functions allow programs to manipulate strings in the memory of the PLC. The basic functions are listed in Figure 27.8.

plc serial - 27.10

ABL(channel, control)- reports the number of ASCII characters including line endings ACB(channel, control) - reports the numbers of ASCII characters in buffer ACI(string, dest) - convert ASCII string to integer

ACN(string, string,dest) - concatenate strings

AEX(string, start, length, dest) - this will cut a segment of a string out of a larger string AIC(integer, string) - convert an integer to a string

AHL(channel, mask, mask, control) - does data handshaking

ARD(channel, dest, control, length) - will get characters from the ASCII buffer ARL(channel, dest, control, length) - will get characters from an ASCII buffer ASC(string, start, string, result) - this will look for one string inside another ASR(string, string) - compares two strings

AWT(channel, string, control, length) - will write characters to an ASCII output

Figure 27.8 PLC-5 ASCII Functions

In the example in Figure 27.9, the characters "Hi " are placed into string memory ST10:1. The ACB function checks to see how many characters have been received, and are waiting in channel 0. When the number of characters equals 2, the ARD (Ascii ReaD) function will then copy those characters into memory ST10:0, and bit R6:0/DN will be set. This done bit will cause the two characters to be concatenated to the "Hi ", and the result written back to the serial port. So, if I typed in my initial "HJ", I would get the response "HI HJ".

plc serial - 27.11

R6:1/EN

GEQ

Source A R6:1.POS

Source B 2

R6:0/DN

ST10:1 = "HI "

Figure 27.9 An ASCII String Example

ACB

Channel 0

Control R6:1

ARL

Channel 0

Dest ST10:0

Control R6:0

Length 2

ACN

StringA ST10:1

StringB ST10:0

Dest ST10:2

AWT

Channel 0

String ST10:2

Length 7

The ASCII functions can also be used to support simple number conversions. The example in Figure 27.10 will convert the strings in ST9:10 and ST9:11 to integers, add the numbers, and store the result as a string in ST9:12.

plc serial - 27.12

AIC

String ST9:10

Dest N7:0

AIC

String ST9:11

Dest N7:1

ADD

SourceA N7:0

SourceB N7:1

Dest N7:2

ACI

Source N7:2

String ST9:12

Figure 27.10 A String to Integer Conversion Example

Many of the remaining string functions are illustrated in Figure 27.11. When A is true the ABL and ACB functions will check for characters that have arrived on channel 1, but have not been retrieved with an ARD function. If the characters "ABC<CR>" have arrived (<CR> is an ASCII carriage return) the ACB would count the three characters, and store the value in R6:0.POS. The ABL function would also count the <CR> and store a value of four in R6:1.POS. If B is true, and the string in ST9:0 is "ABCDEFGHIJKL", then "EF" will be stored in ST9:1. The last function will compare the strings in ST9:2 and ST9:3, and if they are equal, output O:001/2 will be turned on.

Соседние файлы в папке PLC