System_ioctl block

Short summary

Name

System_ioctl

→POU type

→function

Category

more system blocks, blocks for calling system functions, block with internal error diagnostic

Graphical interface

images/download/thumbnails/414780356/System_ioctl-version-1-modificationdate-1534499627893-api-v2.png

Available since

Functionality

The block manipulates parameters of device files or devices via its (file) descriptor. In order to be manipulable, the file descriptor has to be open.

Required expertise

In order to use this block efficiently, you have to be familiar with the functionality of the underlying system call for the operating system used on the PLC.

Inputs, outputs, return value


Identifier

→Data type

Description

Inputs:

fd

DINT

the file descriptor

request

DINT

the ioctl() request to execute

data

LINT

additional data for the call

Outputs:

rc

DINT

return code:

  • 0 = no error

  • -3 = failed system call

errno

DINT

error code returned by the system call

Windows standard values (valid for built-in PLC): see https://msdn.microsoft.com/en-us/library/t3ayayh1.aspx
Linux standard values (e.g. valid for Raspberry Pi): see http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.html

Return value:

DINT

returns the return code of the "ioctl" system call in case of Linux Systems

Input EN and output ENO are available when →calling the block. See "Execution control: EN, ENO" for information on input EN and output ENO.

See:

Internal error diagnostic for block

The block checks the following error cases:

  • The system service has not been loaded.

  • The return value of the block is a negative value.

  • The return code of the function call equates to an error (output rc ≠ value 0).

In such an error case, the output ENO of the block is set to value FALSE (or an equivalent).

Example for usage within ST-editor

At present, there is no example.

When creating your application within the ST-editor, enter a call of a block by typing the text as requested by the syntax or use Content Assist.